Thursday, April 28, 2011

Macam - Macam Query Waktu di SQL Server

Pernah saya kesulitan untuk menjawab pertanyaan "Dapatkan daftar dokter yang praktek mulai pukul 08.00". Tipe data untuk jam_mulai yang saya buat di tabel praktek adalah datetime. Saat itu saya mencoba untuk menulis sintaks :

   SELECT * FROM praktek WHERE jam_mulai like '%08:%';

Namun sintaks tersebut tidak memberikan hasil yang sesuai. Yap, sama dengan kebanyakan orang kalau sudah "buntu" dengan suatu permasalahan, saya buka browser, masuk ke google, dan cari - cari info deh. Cukup lama saya muter-muter dan akhirnya saya menemukan solusi yang mungkin tepat.


Jadi begini, format waktu pada SQL adalah (yyyy-mm-dd hh:mm:ss:mmm) seperti ini: 2009-02-16 12:30:43.796. Untuk menampilkan sesuai dengan yang diinginkan, maka perlu mengkonversinya dengan sintaks :

       CONVERT ( data_type [ ( length ) ] , expression [ style ] )

Berikut ini adalah macam - macam konversinya :


SELECT CONVERT(VARCHAR(30),GETDATE(),100)
--Output (MON DD YYYY HH:MI(AM/PM))
--Jul 7 2009 2:19PM

SELECT CONVERT(VARCHAR(30),GETDATE(),101)
--Output (MM/DD/YYYY)
--07/07/2009

SELECT CONVERT(VARCHAR(30),GETDATE(),102)
--Output (YYYY.MM.DD)
--2009.07.07

SELECT CONVERT(VARCHAR(30),GETDATE(),103)
--Output (DD/MM/YYYY)
--06/07/2009

SELECT CONVERT(VARCHAR(30),GETDATE(),104)
--Output (DD.MM.YYYY)
--06.07.2009

SELECT CONVERT(VARCHAR(30),GETDATE(),105)
--Output (DD-MM-YYYY)
--06-07-2009

SELECT CONVERT(VARCHAR(30),GETDATE(),106)
--Output (DD MON YYYY)
--06 Jul 2009

SELECT CONVERT(VARCHAR(30),GETDATE(),107)
--Output (MON DD,YYYY)
--Jul 06, 2009

SELECT CONVERT(VARCHAR(30),GETDATE(),108)
--Output (HH24:MI:SS)
--14:24:20

SELECT CONVERT(VARCHAR(30),GETDATE(),109)
--Output (MON DD YYYY HH:MI:SS:NNN (AM/PM))
--Jul 7 2009 2:24:35:490PM

SELECT CONVERT(VARCHAR(30),GETDATE(),110)
--Output (MM-DD-YYYY)
-- 07-07-2009

SELECT CONVERT(VARCHAR(30),GETDATE(),111)
--Output (YYYY/MM/DD)
--2009/07/07

SELECT CONVERT(VARCHAR(30),GETDATE(),112)
--Output (YYYYMMDD)
--20090707

SELECT CONVERT(VARCHAR(30),GETDATE(),113)
--Output (MON DD YYYY HH24:MI:SS:NNN)
--07 Jul 2009 14:26:24:617

SELECT CONVERT(VARCHAR(30),GETDATE(),114)
--Output (HH24:MI:SS:NNN)
--14:26:48:953


Sebagai catatan, GETDATE() bisa diganti dengan kolom pada tabel.

Contoh sintaks :

SELECT * FROM praktek WHERE CONVERT(VARCHAR(30),jam_mulai,108) like '%08:%';

Dan untuk selanjutnya, anda bisa mengembangkannya sendiri.

Terima kasih untuk asepsmile.blogspot.com.



No comments:

Post a Comment