Masalah:
Anda ingin mendapatkan perbedaan, dalam hitungan hari, antara dua tanggal di database MySQL.
Contoh:
Basis data kami memiliki tabel bernama food dengan data pada kolom id , name , purchase_date , dan expiration_date .
| id | nama | tanggal_pembelian | tanggal_kedaluwarsa |
|---|---|---|---|
| 1 | roti | 20-07-2019 | 22-08-2019 |
| 2 | mentega | 30-07-2018 | 10-08-2019 |
| 3 | susu | 01-12-2019 | 13-01-2019 |
| 4 | yoghurt | 25-02-2019 | 24-02-2019 |
Untuk setiap produk makanan, mari kita lihat nama produk dan jumlah hari antara tanggal kedaluwarsa dan tanggal pembelian.
Solusi:
Kami akan menggunakan DATEDIFF() fungsi. Inilah kueri yang akan Anda tulis:
SELECT name, DATEDIFF(expiration_date, purchase_date) AS days FROM food;
Berikut hasil querynya:
| nama | hari |
|---|---|
| roti | 33 |
| mentega | 376 |
| susu | 1 |
| yoghurt | -1 |
Diskusi:
Gunakan DATEDIFF() berfungsi untuk mengambil jumlah hari antara dua tanggal dalam database MySQL. Fungsi ini membutuhkan dua argumen:
- Tanggal akhir. (Dalam contoh kita, ini adalah
expiration_datekolom.) - Tanggal mulai. (Dalam contoh kami, ini adalah
purchase_datekolom.)
Argumen ini dapat berupa nilai tanggal/waktu, ekspresi yang mengembalikan nilai tanggal/waktu, atau kolom dari tipe data tanggal/tanggal.
Fungsi ini mengurangi tanggal mulai dari tanggal akhir dan mengembalikan jumlah hari sebagai bilangan bulat. Dalam contoh kita, mentega dibeli pada '30-07-2018', tetapi tanggal kedaluwarsanya adalah '2019-08-10'; setelah pembelian, itu bisa dimakan selama 376 hari. Perhatikan bahwa yogurt dibeli sebagai produk usang:perbedaan hari adalah -1 dan tanggal pembeliannya lebih lambat dari tanggal kedaluwarsanya.