Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

ADDDATE() vs DATE_ADD() di MySQL:Apa Bedanya?

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Install MySQL 8 Terbaru di Debian 10

  2. Paginasi MySQL tanpa kueri ganda?

  3. Cara menampilkan tanggal sebagai format iso 8601 dengan PHP

  4. PHP, MySQL dan Zona Waktu

  5. Bagaimana cara memprogram pemicu MySQL untuk memasukkan baris ke tabel lain?