MySQL TIMESTAMPDIFF()
fungsi digunakan untuk menemukan perbedaan antara dua ekspresi tanggal atau datetime. Anda harus memasukkan dua nilai tanggal/waktu, serta unit yang akan digunakan dalam menentukan perbedaan (mis., hari , bulan , dll). TIMESTAMPDIFF()
fungsi kemudian akan mengembalikan perbedaan dalam unit yang ditentukan.
Sintaks
Pertama, begini sintaksnya:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Di sini, unit
adalah satuan yang digunakan untuk menyatakan perbedaan (misalnya hari, bulan, tahun, dll). datetime_expr1
adalah nilai tanggal/datetime pertama, dan datetime_expr2
adalah yang kedua.
Fungsi ini mengurangi datetime_expr1
dari datetime_expr2
dan mengembalikan hasilnya dalam unit
s. Hasilnya dikembalikan sebagai bilangan bulat.
Unit yang Valid
unit
argumen dapat berupa salah satu dari berikut ini:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Contoh 1 – Perbedaan Hari
Berikut adalah contoh untuk mendemonstrasikan penggunaan dasar fungsi ini. Di sini kami membandingkan dua ekspresi tanggal dan mengembalikan perbedaannya dalam hari.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Hasil:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Contoh 2 – Perbedaan Jam
Dalam contoh ini kami membandingkan nilai yang sama seperti pada contoh sebelumnya, kecuali di sini, kami mengembalikan selisihnya dalam jam .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Hasil:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Contoh 3 – Contoh 'datetime'
Berikut adalah contoh yang mengembalikan perbedaan dalam hitungan menit. Dalam hal ini, kami membandingkan dua nilai waktu-tanggal (sebagai lawan hanya nilai tanggal seperti pada contoh sebelumnya).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Hasil:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Contoh 4 – Detik Pecahan
Anda dapat langsung ke mikrodetik (6 digit) jika perlu.
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Hasil:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Contoh 5 – Hasil Negatif
Seperti yang diharapkan, jika argumen tanggal/waktu pertama lebih besar dari yang kedua, hasilnya akan berupa bilangan bulat negatif.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Hasil:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+