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