MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana TIMEDIFF() Bekerja di MariaDB

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() mengembalikan null :

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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbandingan Ketersediaan Tinggi Basis Data - Replikasi MySQL / MariaDB vs Oracle Data Guard

  2. Mengonfigurasi Otentikasi LDAP dan Pemetaan Grup Dengan MariaDB

  3. Pengujian Otomatis dari Proses Peningkatan untuk Server MySQL/MariaDB/Percona

  4. Bagaimana CONVERT_TZ() Bekerja di MariaDB

  5. Menyebarkan Replikasi MariaDB untuk Ketersediaan Tinggi