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

Bagaimana TIMESTAMPDIFF() Bekerja di MariaDB

Di MariaDB, TIMESTAMPDIFF() adalah fungsi tanggal dan waktu bawaan yang mengembalikan perbedaan antara dua ekspresi tanggal atau waktu.

Sintaks

Sintaksnya seperti ini:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Dimana unit adalah salah satu dari nilai berikut:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

Unit opsional dapat memiliki awalan SQL_TSI_ .

TIMESTAMPDIFF() mengembalikan datetime_expr2 – datetime_expr1 .

Satu ekspresi mungkin berupa tanggal dan yang lainnya adalah waktu. Nilai tanggal diperlakukan sebagai bagian waktu 00:00:00 bila perlu.

Contoh

Berikut ini contoh untuk didemonstrasikan:

SELECT TIMESTAMPDIFF(DAY, '2030-02-01', '2030-03-01');

Hasil:

+------------------------------------------------+
| TIMESTAMPDIFF(DAY, '2030-02-01', '2030-03-01') |
+------------------------------------------------+
|                                             28 |
+------------------------------------------------+

Hasil Negatif

Mengganti tanggal memberikan hasil negatif:

SELECT TIMESTAMPDIFF(DAY, '2030-03-01', '2030-02-01');

Hasil:

+------------------------------------------------+
| TIMESTAMPDIFF(DAY, '2030-03-01', '2030-02-01') |
+------------------------------------------------+
|                                            -28 |
+------------------------------------------------+

Nilai Tanggal-waktu

Berikut ini contoh melewatkan nilai datetime:

SELECT TIMESTAMPDIFF(
    HOUR, 
    '2030-02-01 00:00:00', 
    '2030-02-01 12:30:45'
    ) 
AS Result;

Hasil:

+--------+
| Result |
+--------+
|     12 |
+--------+

Saya menentukan HOUR , sehingga mengabaikan bagian menit dan detik.

Jenis Campuran

Berikut ini contoh melewatkan nilai tanggal dan waktu:

SELECT TIMESTAMPDIFF(
    HOUR, 
    '2030-02-01', 
    '2030-02-01 12:30:45'
    ) 
AS Result;

Hasil:

+--------+
| Result |
+--------+
|     12 |
+--------+

Seperti yang disebutkan, nilai tanggal diperlakukan sebagai bagian waktu 00:00:00 .

Menambahkan SQL_TSI_ Awalan

Unit dapat menyertakan SQL_TSI_ awalan jika diperlukan:

SELECT TIMESTAMPDIFF(
    SQL_TSI_YEAR, 
    '2030-02-01', 
    '2035-02-01'
    )
AS Result;

Hasil:

+--------+
| Result |
+--------+
|      5 |
+--------+

Mikrodetik

Berikut ini contoh yang mengembalikan mikrodetik:

SELECT TIMESTAMPDIFF(
    MICROSECOND, 
    '2030-02-01 10:30:45.000000',
    '2030-02-01 10:30:45.123456'
    )
AS Result;

Hasil:

+--------+
| Result |
+--------+
| 123456 |
+--------+

Inilah satu di mana mikrodetik sebenarnya tidak ditentukan dalam nilai datetime:

SELECT TIMESTAMPDIFF(
    MICROSECOND, 
    '2030-02-01 10:30:45',
    '2030-02-01 12:30:45'
    )
AS Result;

Hasil:

+------------+
| Result     |
+------------+
| 7200000000 |
+------------+

Tanggal Saat Ini

Kita dapat melewati NOW() salah satu argumen datetime untuk membandingkan tanggal dan waktu saat ini dengan tanggal lain:

SELECT 
    NOW(),
    TIMESTAMPDIFF(DAY, NOW(), '2021-03-31') AS Diff;

Hasil:

+---------------------+------+
| NOW()               | Diff |
+---------------------+------+
| 2021-05-30 09:29:01 |  -60 |
+---------------------+------+

Tanggal Nol

Jika salah satu tanggal null , hasilnya null :

SELECT TIMESTAMPDIFF(
    YEAR, 
    '2030-02-01',
    NULL
    )
AS Result;

Hasil:

+--------+
| Result |
+--------+
|   NULL |
+--------+

Argumen Tidak Ada

Memanggil TIMESTAMPDIFF() dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:

SELECT TIMESTAMPDIFF();

Hasil:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

Dan contoh lain:

SELECT TIMESTAMPDIFF('2020-12-09');

Hasil:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10, '2020-12-09')' at line 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana ADDTIME() Bekerja di MariaDB

  2. Cara Mudah Menyebarkan Cluster MySQL Galera di AWS

  3. MariaDB JSON_KEYS() Dijelaskan

  4. Bagaimana TO_BASE64() Bekerja di MariaDB

  5. Panduan untuk Otomatisasi Basis Data dengan Kontrol Cluster Somenines