Di MySQL, Anda dapat menggunakan DATEDIFF()
berfungsi untuk mencari perbedaan antara dua tanggal. Cara kerjanya adalah, Anda memberikan dua argumen (satu untuk setiap tanggal), dan DATEDIFF()
akan mengembalikan jumlah hari antara dua tanggal.
Contoh di bawah.
Sintaks
Pertama, inilah sintaksnya:
DATEDIFF(expr1,expr2)
Dimana expr1
adalah kencan pertama, dan expr2
adalah kencan kedua.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh untuk didemonstrasikan.
SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';
Hasil:
+--------+ | Result | +--------+ | 29 | +--------+
Dalam contoh ini, kencan pertama lebih lambat dari kencan kedua. Dalam hal ini kita mendapatkan nilai pengembalian yang positif.
Contoh 2 – Perbandingan dengan Tanggal Sebelumnya
Kencan pertama tidak harus lebih lambat dari kencan kedua. Anda dapat menggunakan tanggal yang lebih awal untuk argumen pertama dan itu akan mengembalikan nilai negatif. Jika kita menukar kedua argumen itu, kita mendapatkan yang berikut:
SELECT DATEDIFF('2020-10-01', '2020-10-30') AS 'Result';
Hasil:
+--------+ | Result | +--------+ | -29 | +--------+
Contoh 3 – Nilai Datetime
Saat digunakan dengan datetime nilai, hanya bagian tanggal yang digunakan untuk membandingkan tanggal. Contoh:
SELECT DATEDIFF('2020-10-30 23:59:59', '2020-10-01') AS 'Result 1', DATEDIFF('2020-10-01 23:59:59', '2020-10-30') AS 'Result 2';
Hasil:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 29 | -29 | +----------+----------+
Contoh 4 – Kueri Basis Data
Berikut ini contoh penggunaan DATEDIFF()
dalam kueri basis data. Dalam contoh ini, saya membandingkan payment_date
kolom dengan tanggal hari ini (dengan menggunakan CURDATE()
berfungsi untuk mengembalikan tanggal hari ini):
USE sakila; SELECT DATE(payment_date) AS 'Date/Time', CURDATE(), DATEDIFF(payment_date, CURDATE()) AS 'Date' FROM payment WHERE payment_id = 1;
Hasil:
+------------+------------+-------+ | Date/Time | CURDATE() | Date | +------------+------------+-------+ | 2005-05-25 | 2018-06-25 | -4779 | +------------+------------+-------+