Di MariaDB, SUBTIME()
adalah fungsi tanggal dan waktu bawaan yang mengurangi jumlah dari ekspresi waktu atau datetime.
Ini memungkinkan Anda untuk mengubah ekspresi waktu atau datetime dengan meneruskan ekspresi itu, serta ekspresi waktu untuk mengurangi ekspresi itu. Anda dapat memberikan jumlah negatif jika Anda perlu menambahkan ke ekspresi waktu.
Sintaks
Sintaksnya seperti ini:
SUBTIME(expr1,expr2)
Dimana expr1
adalah ekspresi waktu atau datetime, dan expr2
adalah ekspresi waktu.
Contoh
Ini contohnya:
SELECT SUBTIME('10:00:00', '02:30:45');
Hasil:
+---------------------------------+ | SUBTIME('10:00:00', '02:30:45') | +---------------------------------+ | 07:29:15 | +---------------------------------+
Ekspresi Tanggal-waktu
Argumen pertama juga dapat berupa ekspresi datetime:
SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45');
Hasil:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '22:30:45') | +--------------------------------------------+ | 2021-04-30 11:29:15 | +--------------------------------------------+
Dalam hal ini, cukup waktu yang dikurangi untuk menarik tanggal kembali ke hari dan bulan sebelumnya.
Ekspresi Waktu dalam Format yang Lebih Longgar
MariaDB memungkinkan penetapan waktu dalam format yang lebih longgar, seperti menghilangkan angka nol di depan dan memberikan nilai untuk hari itu.
Oleh karena itu, kita dapat melakukan ini:
SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456');
Hasil:
+----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') | +----------------------------------------------------+ | 2020-04-30 08:58:58.876544 | +----------------------------------------------------+
Interval Negatif
Memberikan interval negatif untuk porsi hari ditambahkan jumlah itu ke waktu/tanggal.
Contoh:
SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456');
Hasil:
+-----------------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') | +-----------------------------------------------------+ | 2022-05-02 11:01:01.123456 | +-----------------------------------------------------+
Argumen Null
Jika ada argumen null
, hasilnya null
:
SELECT
SUBTIME('10:00:00', null),
SUBTIME(null, '02:30:45'),
SUBTIME(null, null);
Hasil:
+---------------------------+---------------------------+---------------------+ | SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) | +---------------------------+---------------------------+---------------------+ | NULL | NULL | NULL | +---------------------------+---------------------------+---------------------+
Argumen Tidak Ada
Memanggil SUBTIME()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun menghasilkan kesalahan:
SELECT SUBTIME();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'