Di MariaDB, DATE_SUB()
adalah fungsi tanggal dan waktu bawaan yang memungkinkan Anda mengurangi jumlah dari tanggal.
Ini memungkinkan Anda untuk mengubah tanggal dengan menentukan tanggal, unit yang akan dikurangi, dan jumlah yang akan dikurangi. Anda dapat memberikan jumlah negatif untuk menambah tanggal, bukan menguranginya.
Sintaks
Sintaksnya seperti ini:
DATE_SUB(date,INTERVAL expr unit)
Dimana date
adalah tanggal untuk berubah, expr
adalah jumlah yang akan dikurangi, dan unit
adalah unit tanggal/waktu untuk dikurangi (misalnya detik, menit, dll).
Contoh
Berikut ini contoh dasarnya:
SELECT DATE_SUB('2021-05-31 10:00:00', INTERVAL 1 HOUR);
Hasil:
+--------------------------------------------------+ | DATE_SUB('2021-05-31 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-31 09:00:00 | +--------------------------------------------------+
Ini seperti melakukan hal berikut:
SELECT '2021-05-31 10:00:00' - INTERVAL 1 HOUR;
Hasil:
+-----------------------------------------+ | '2021-05-31 10:00:00' - INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-31 09:00:00 | +-----------------------------------------+
Interval Negatif
Memberikan interval negatif menambahkan jumlah itu sejak tanggal tersebut.
Contoh:
SELECT DATE_SUB('2021-05-31 10:00:00', INTERVAL -1 HOUR);
Hasil:
+---------------------------------------------------+ | DATE_SUB('2021-05-31 10:00:00', INTERVAL -1 HOUR) | +---------------------------------------------------+ | 2021-05-31 11:00:00 | +---------------------------------------------------+
Unit Lain
Berikut adalah contoh yang menambahkan interval 1 ke berbagai unit tanggal dan waktu:
SELECT
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 YEAR) AS YEAR,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MONTH) AS MONTH,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 DAY) AS DAY,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 HOUR) AS HOUR,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 SECOND) AS SECOND,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;
Hasil (menggunakan keluaran vertikal):
YEAR: 2020-05-10 10:00:00 MONTH: 2021-04-10 10:00:00 DAY: 2021-05-09 10:00:00 HOUR: 2021-05-10 09:00:00 MINUTE: 2021-05-10 09:59:00 SECOND: 2021-05-10 09:59:59 MICROSECOND: 2021-05-10 09:59:59.999999
Unit Komposit
Berikut ini contoh yang menggunakan unit komposit:
SELECT
DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";
Hasil:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2020-03-01 10:00:00 | 2021-05-01 08:34:25 | 2021-05-01 08:30:00 | +---------------------+---------------------+---------------------+
Tanggal Nol
Melewati null
untuk tanggal kembali null
:
SELECT DATE_SUB(null, INTERVAL 1 YEAR);
Hasil:
+---------------------------------+ | DATE_SUB(null, INTERVAL 1 YEAR) | +---------------------------------+ | NULL | +---------------------------------+
Argumen Tidak Ada
Memanggil DATE_SUB()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun menghasilkan kesalahan:
SELECT DATE_SUB();
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