Di MariaDB, TIMEDIFF()
adalah fungsi tanggal dan waktu bawaan yang mengembalikan perbedaan antara dua nilai waktu atau nilai waktu, yang dinyatakan sebagai nilai waktu.
Ini mirip dengan DATEDIFF()
fungsi, kecuali DATEDIFF()
nilai pengembalian dinyatakan dalam hari.
TIMEDIFF()
menerima dua argumen, keduanya adalah ekspresi waktu atau datetime. Ini kemudian mengurangi kedua kalinya dari yang pertama.
Sintaks
Sintaksnya seperti ini:
TIMEDIFF(expr1,expr2)
Kemudian mengembalikan expr1 - expr2
.
Contoh
Ini contohnya:
SELECT TIMEDIFF('10:30:17', '1:10:10');
Hasil:
+----------------------------------+| TIMEDIFF('10:30:17', '1:10:10') |+------------------------------ ---+| 09:20:07 |+----------------------------------+
Ini dia lagi, tetapi dengan nilai waktu yang tertukar:
SELECT TIMEDIFF('1:10:10', '10:30:17');
Hasil:
+----------------------------------+| TIMEDIFF('1:10:10', '10:30:17') |+------------------------------ ---+| -09:20:07 |+---------------------------------+
Nilai Tanggal-waktu
Berikut ini contoh yang menggunakan nilai datetime:
SELECT TIMEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');
Hasil:
+------------------------------------------------- ----------+| TIMEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |+-------------------- ------------------------------------+| 96:00:01 |+-------------------------------------------------- -------------+
Jenis Nilai Campuran
Sementara TIMEDIFF()
bekerja pada nilai waktu dan waktu, kedua argumen harus bertipe sama. Jenis pencampuran menghasilkan null
.
Contoh:
SELECT TIMEDIFF('2030-01-25 00:00:00', '23:59:59');
Hasil:
+------------------------------------------------+ | TIMEDIFF('2030-01-25 00:00:00', '23:59:59') |+------------------------- --------------------+| NULL |+--------------------------------------------+Di Luar Jangkauan
Rentang untuk nilai waktu adalah
'-838:59:59.999999'
ke'838:59:59.999999'
. Jika hasilnya di luar rentang tersebut, nilai yang dikembalikan adalah batas atas dari rentang yang relevan, dan peringatan akan ditampilkan.Contoh:
SELECT TIMEDIFF('2040-01-25 00:00:00', '2030-01-25 23:59:59');
Hasil:
+------------------------------------------------- ----------+| TIMEDIFF('2040-01-25 00:00:00', '2030-01-25 23:59:59') |+-------------------- ------------------------------------+| 838:59:59 |+------------------------------------------------------ -------------+1 baris di set, 1 peringatan (0,003 detik)Mari kita lihat peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- ------------------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- -----------------+| Peringatan | 1292 | Nilai waktu salah terpotong:'87624:00:01' |+---------+------+------------------- ----------------------------+Tanggal Saat Ini
Di sini, kami melewati
NOW()
sebagai argumen kedua:SELECT NOW(), TIMEDIFF('2021-05-27 10:00:00', NOW());
Hasil:
+---------------------+------------------------ ----------------+| SEKARANG() | TIMEDIFF('2021-05-27 10:00:00', SEKARANG()) |+---------------------+------- ----------------------------------+| 2021-05-27 14:29:38 | -04:29:38 |+---------------------+-------------------- --------------------+Argumen Tidak Valid
Ketika melewati argumen yang tidak valid,
TIMEEDIFF()
mengembalikannull
:SELECT TIMEDIFF('Homer', 'Simpson');
Hasil:
+-----------------------------+| TIMEDIFF('Homer', 'Simpson') |+------------------------------+| NULL |+----------------------------+Argumen Tidak Ada
Memanggil
TIMEDIFF()
jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:SELECT TIMEDIFF();
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'TIMEDIFF'Dan:
SELECT TIMEDIFF('2030-05-21');
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'TIMEDIFF'