Saat menggunakan MySQL, kami memiliki opsi untuk menggunakan ADDDATE()
dan DATE_ADD()
berfungsi setiap kali kita ingin menambahkan interval waktu tertentu ke tanggal tertentu. Kedua fungsi ini melakukan hal yang sama, tetapi ada satu perbedaan di antara keduanya.
Artikel ini menunjukkan perbedaan antara ADDDATE()
dan DATE_ADD()
di MySQL.
Sintaks
Perbedaan antara kedua fungsi ini terletak pada sintaksnya. Satu fungsi memungkinkan untuk dua bentuk yang berbeda, sedangkan yang lain memungkinkan hanya satu bentuk.
DATE_ADD()
DATE_ADD()
sintaksnya seperti ini.
DATE_ADD(date,INTERVAL expr unit)
Ini menerima nilai tanggal, diikuti oleh INTERVAL
kata kunci dan ekspresi serta unit yang akan ditambahkan ke tanggal yang diberikan oleh argumen pertama.
TAMBAHKAN()
ADDDATE()
sintaks memungkinkan untuk dua bentuk. Anda dapat menggunakan salah satu formulir berikut.
ADDDATE(date,INTERVAL expr unit)
Atau
ADDDATE(expr,days)
Bentuk pertama sama persis dengan DATE_ADD()
sintaksis. Bahkan, saat menggunakan sintaks ini, ADDDATE()
fungsi adalah sinonim untuk DATE_ADD()
.
Namun, ini adalah bentuk kedua dari sintaks yang membedakan kedua fungsi tersebut. Formulir kedua ini hanya tersedia saat menggunakan ADDDATE()
fungsi, dan memungkinkan Anda menggunakan cara singkat untuk menentukan jumlah hari yang akan ditambahkan ke tanggal.
Contoh
Berikut adalah contoh untuk menunjukkan perbedaan antara kedua bentuk tersebut.
SET @date = '2020-10-01'; SELECT DATE_ADD(@date, INTERVAL 2 DAY) AS 'DATE_ADD', ADDDATE(@date, INTERVAL 2 DAY) AS 'ADDDATE 1', ADDDATE(@date, 2) AS 'ADDDATE 2';
Hasil:
+------------+------------+------------+ | DATE_ADD | ADDDATE 1 | ADDDATE 2 | +------------+------------+------------+ | 2020-10-03 | 2020-10-03 | 2020-10-03 | +------------+------------+------------+
Tetapi jika kita mencoba menggunakan formulir kedua pada ADD_DATE()
, kami mendapatkan kesalahan:
SET @date = '2020-10-01'; SELECT DATE_ADD(@date, 2) AS 'DATE_ADD 2';
Hasil:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2) AS 'DATE_ADD 2'' at line 1
Ini karena fungsi ini tidak mendukung sintaks tersebut.