Di MariaDB, ADDDATE()
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.
ADDDATE()
juga memiliki sintaks pintasan yang memungkinkan Anda menambahkan jumlah hari tertentu ke tanggal.
Sintaks
ADDDATE()
fungsi memiliki dua sintaks.
Sintaks 1
ADDDATE(expr,days)
Dimana expr
adalah tanggal, dan days
adalah jumlah hari untuk ditambahkan.
Sintaks 2:
ADDDATE(date,INTERVAL expr unit)
Dimana date
adalah tanggal untuk berubah, expr
adalah jumlah yang akan ditambahkan, dan unit
adalah unit untuk ditambahkan (misalnya detik, menit, dll).
Saat menggunakan sintaks ini, ADDDATE()
adalah sinonim untuk DATE_ADD()
.
Contoh – Sintaks 1
Berikut ini contoh penggunaan sintaks pertama:
SELECT ADDDATE('2021-05-01', 1);
Hasil:
+--------------------------+| TAMBAH('2021-05-01', 1) |+--------------------------+| 2021-05-02 |+--------------------------+
Kami juga dapat menyertakan porsi waktu jika diperlukan:
SELECT ADDDATE('2021-05-01 10:00:00', 1);
Hasil:
+-----------------------------------+| TAMBAH('2021-05-01 10:00:00', 1) |+------------------------------- ----+| 2021-05-02 10:00:00 |+-----------------------------------+Berikut adalah dua cara alternatif untuk melakukan hal yang sama:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS "Result 1", '2021-05-01 10:00:00' + INTERVAL 1 DAY AS "Result 2";
Hasil:
+---------------------+---------------------+| Hasil 1 | Hasil 2 |+---------------------+---------------------+| 2021-05-02 10:00:00 | 2021-05-02 10:00:00 |+---------------------+---------------- -----+Contoh – Sintaks 2
Berikut ini contoh penggunaan sintaks kedua:
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR);
Hasil:
+------------------------------------------------- ---+| ADDDATE('2021-05-31 10:00:00', INTERVAL 1 JAM) |+--------------------------------------- --------------------+| 2021-05-31 11:000:00 |+------------------------------------------------- -----------+Sintaks ini memungkinkan kita untuk menambahkan unit lain ke tanggal (yaitu bukan hanya hari). Di sini, saya menambahkan satu jam ke tanggal, tetapi saya dapat dengan mudah menambahkan menit, detik, bulan, hari, tahun, dll. Lanjutkan membaca untuk contoh.
Berikut adalah dua metode alternatif untuk mencapai hasil yang sama seperti contoh di atas:
SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) AS "Result 1", '2021-05-31 10:00:00' + INTERVAL 1 HOUR AS "Result 2";
Hasil:
+---------------------+---------------------+| Hasil 1 | Hasil 2 |+---------------------+---------------------+| 2021-05-31 11:000:00 | 2021-05-31 11:00:00 |+---------------------+---------------- -----+Interval Negatif
Memberikan interval negatif akan mengurangi jumlah tersebut dari tanggal.
Contoh:
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR);
Hasil:
+------------------------------------------------- ----+| TAMBAH('2021-05-31 10:00:00', INTERVAL -1 JAM) |+----------------------------- -----------------------+| 2021-05-31 09:00:00 |+-------------------------------------- ------------+Unit Lain
Berikut adalah contoh yang menambahkan interval 1 ke berbagai unit tanggal dan waktu:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND, ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;
Hasil (menggunakan keluaran vertikal):
TAHUN:2022-05-01 10:00:00 BULAN:2021-06-01 10:00:00 HARI:2021-05-02 10:00:00 JAM:01-01 2021 11:00:00 MENIT:2021-05-01 10:01:00 KEDUA:05-01 2021 10:00:01MICROSECOND:2021-05-01 10:00:00,000001Unit Komposit
Berikut ini contoh yang menggunakan unit komposit:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH", ADDDATE('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND", ADDDATE('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 kembalinull
:SELECT ADDDATE(null, INTERVAL 1 YEAR);
Hasil:
+--------------------------------+| TAMBAH(null, INTERVAL 1 TAHUN) |+--------------------------------+| NULL |+--------------------------------+Argumen Tidak Ada
Memanggil
ADDDATE()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun menghasilkan kesalahan:SELECT ADDDATE();
Hasil:
ERROR 1064 (42000):Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MariaDB Anda untuk sintaks yang tepat untuk digunakan di dekat ')' di baris 1