MySQL TIMEDIFF()
fungsi mengembalikan perbedaan antara dua nilai waktu atau waktu.
Cara kerjanya adalah, Anda memberikan dua nilai untuk dibandingkan, dan TIMEDIFF()
kurangi nilai kedua dari nilai pertama, lalu kembalikan hasilnya sebagai nilai waktu.
Sintaks
Sintaksnya seperti ini:
TIMEDIFF(expr1,expr2)
Dimana expr1
dan expr2
adalah dua nilai untuk dibandingkan. Nilai yang dikembalikan adalah expr2
dikurangi dari expr1
.
Contoh Dasar
Berikut ini contoh untuk didemonstrasikan.
SELECT TIMEDIFF('11:35:25', '10:35:25');
Hasil:
+----------------------------------+ | TIMEDIFF('11:35:25', '10:35:25') | +----------------------------------+ | 01:00:00 | +----------------------------------+
Waktu yang Berlalu
Nilai waktu dapat mewakili waktu yang telah berlalu, jadi tidak terbatas pada kurang dari 24 jam.
SELECT TIMEDIFF('500:35:25', '10:35:25');
Hasil:
+-----------------------------------+ | TIMEDIFF('500:35:25', '10:35:25') | +-----------------------------------+ | 490:00:00 | +-----------------------------------+
Perbedaan Waktu Negatif
Jika nilai kedua lebih besar dari yang pertama, Anda akan mendapatkan nilai negatif untuk perbedaan waktu. Ini benar-benar valid.
SELECT TIMEDIFF('10:35:25', '500:35:25');
Hasil:
+-----------------------------------+ | TIMEDIFF('10:35:25', '500:35:25') | +-----------------------------------+ | -490:00:00 | +-----------------------------------+
Nilai Tanggal-waktu
Berikut adalah contoh yang menggunakan nilai datetime sebagai argumen.
SELECT TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25');
Hasil:
+--------------------------------------------------------+ | TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25') | +--------------------------------------------------------+ | 744:00:00 | +--------------------------------------------------------+
Perhatikan bahwa kedua argumen harus bertipe sama. Jadi Anda tidak dapat memiliki nilai waktu untuk yang pertama dan nilai waktu untuk yang kedua (dan sebaliknya).
Perhatikan juga bahwa tipe data waktu hanya dapat berada dalam rentang -838:59:59 ke 838:59:59 . Oleh karena itu, berikut ini tidak berfungsi:
SELECT TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25');
Hasil:
+--------------------------------------------------------+ | TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25') | +--------------------------------------------------------+ | -838:59:59 | +--------------------------------------------------------+ 1 row in set, 1 warning (0.00 sec)
Dalam hal ini, kami mendapatkan hasil yang salah dan peringatan.