Tanggal SQL
Bagian tersulit saat bekerja dengan tanggal adalah memastikan bahwa format tanggal yang Anda coba sisipkan, cocok dengan format kolom tanggal dalam database.
Selama data Anda hanya berisi bagian tanggal, kueri Anda akan berfungsi seperti yang diharapkan. Namun, jika melibatkan porsi waktu, itu menjadi lebih rumit.
Tipe Data Tanggal SQL
MySQL hadir dengan tipe data berikut untuk menyimpan tanggal atau nilai tanggal / waktu dalam database:
- TANGGAL - format YYYY-MM-DD
- DATETIME - format: YYYY-MM-DD HH: MI: SS
- TIMESTAMP - format: TTTT-BB-HH JJ: MI: SS
- TAHUN - format YYYY atau YY
SQL Server dilengkapi dengan tipe data berikut untuk menyimpan tanggal atau nilai tanggal / waktu dalam database:
- TANGGAL - format YYYY-MM-DD
- DATETIME - format: YYYY-MM-DD HH: MI: SS
- SMALLDATETIME - format: YYYY-MM-DD JJ: MI: SS
- TIMESTAMP - format: nomor unik
Catatan: Tipe tanggal dipilih untuk kolom saat Anda membuat tabel baru di database Anda!
SQL Bekerja dengan Tanggal
Anda dapat membandingkan dua tanggal dengan mudah jika tidak ada komponen waktu yang terlibat!
Asumsikan kita memiliki tabel "Pesanan" berikut:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
2 | Camembert Pierrot | 2008-11-09 |
3 | Mozzarella di Giovanni | 2008-11-11 |
4 | Mascarpone Fabioli | 2008-10-29 |
Sekarang kita ingin memilih record dengan OrderDate "2008-11-11" dari tabel di atas.
Kami menggunakan pernyataan SELECT berikut:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
Kumpulan hasil akan terlihat seperti ini:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Sekarang, asumsikan bahwa tabel "Pesanan" terlihat seperti ini (perhatikan komponen waktu di kolom "TanggalPesanan"):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Camembert Pierrot | 2008-11-09 15:45:21 |
3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
4 | Mascarpone Fabioli | 2008-10-29 14:56:59 |
Jika kita menggunakan pernyataan SELECT yang sama seperti di atas:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
kami tidak akan mendapatkan hasil! Ini karena kueri hanya mencari tanggal tanpa bagian waktu.
Tip: Agar kueri Anda tetap sederhana dan mudah dikelola, jangan izinkan komponen waktu dalam tanggal Anda!