Hal yang tidak mudah saat menggunakan fungsi Date pada SQL adalah memastikan bahwa format tanggal yand dimasukkan bisa cocok dengan format kolom tanggal pada database.
Selama data hanya berisi bagian tanggal, kueri akan berfungsi seperti yang diharapkan. Namun, jika melibatkan porsi waktu, itu menjadi lebih rumit.
MySQL memiliki tipe data berikut untuk menyimpan date atau nilai tanggal / waktu dalam database:
SQL Server dilengkapi dengan tipe data berikut untuk menyimpan date atau nilai tanggal / waktu dalam database:
Catatan: Tipe tanggal dipilih untuk kolom saat membuat tabel baru di database sendiri!
Kita harus bisa membandingkan dua tanggal dengan mudah jika tidak ada komponen waktu yang terlibat!
Asumsikan kita memiliki tabel “Order” berikut:
OrderId | NamaProduk | TanggalPesanan |
---|---|---|
1 | Geitost | 2012-12-12 |
2 | Camembert Pierrot | 2012-12-12 |
3 | Mozzarella di Giovanni | 2012-12-13 |
4 | Mascarpone Fabioli | 2012-11-12 |
Sekarang kita ingin memilih record dengan TanggalPesanan”2008-11-11″ dari tabel di atas.
Kita coba untuk gunakan pernyataan SELECT berikut:
SELECT * FROM Orders WHERE TanggalPesanan='2012-12-12'
Hasilnya akan terlihat seperti ini:
OrderId | NamaProduk | TanggalPesanan |
---|---|---|
1 | Geitost | 2012-12-12 |
3 | Mozzarella di Giovanni | 2012-12-12 |
Sekarang, asumsikan bahwa tabel “Order” terlihat seperti ini (perhatikan komponen waktu di kolom “TanggalPesanan”):
OrderId | NamaProduk | Tanggal Pesanan |
---|---|---|
1 | Geitost | 2012-12-12 13:23:44 |
2 | Camembert Pierrot | 2012-12-12 15:45:21 |
3 | Mozzarella di Giovanni | 2012-12-13 11:12:01 |
4 | Mascarpone Fabioli | 2012-11-12 14:56:59 |
Jika kita menggunakan pernyataan SELECT yang sama seperti di atas:
SELECT * FROM Orders WHERE TanggalPesanan='2012-12-12'
Kita tidak akan mendapatkan hasil! Ini karena kueri hanya mencari tanggal tanpa bagian waktu.
Tip: Agar kueri dapat tetap sederhana dan mudah dikelola, jangan izinkan komponen waktu dalam tanggal kita sendri!