Mysql
 sql >> база данни >  >> RDS >> Mysql

ADDDATE() срещу DATE_ADD() в MySQL:Каква е разликата?

Когато използваме MySQL, имаме опцията да използваме ADDDATE() и DATE_ADD() функции винаги, когато искаме да добавим определен интервал от време към дадена дата. И двете функции правят едно и също нещо, но има една разлика между тях.

Тази статия демонстрира разликата между ADDDATE() и DATE_ADD() в MySQL.

Синтаксис

Разликата между тези две функции е в техния синтаксис. Едната функция позволява две различни форми, докато другата позволява само една форма.

DATE_ADD()

DATE_ADD() синтаксисът е така.

DATE_ADD(date,INTERVAL expr unit)

Това приема стойност за дата, последвана от INTERVAL ключова дума и изразът и единицата, за които да добавите към датата, предоставена от първия аргумент.

ADDDATE()

ADDDATE() синтаксисът позволява две форми. Можете да използвате някоя от следните формуляри.

ADDDATE(date,INTERVAL expr unit)

Или

ADDDATE(expr,days)

Първият формуляр е точно същият като DATE_ADD() синтаксис. Всъщност, когато използвате този синтаксис, ADDDATE() функцията е синоним на DATE_ADD() .

Въпреки това, втората форма на синтаксиса разделя двете функции. Този втори формуляр е достъпен само при използване на ADDDATE() функция и ви позволява да използвате съкратен начин да посочите броя на дните за добавяне към датата.

Пример

Ето пример за демонстриране на разликата между двете форми.

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';

Резултат:

+------------+------------+------------+
| DATE_ADD   | ADDDATE 1  | ADDDATE 2  |
+------------+------------+------------+
| 2020-10-03 | 2020-10-03 | 2020-10-03 |
+------------+------------+------------+

Но ако се опитаме да използваме втория формуляр на ADD_DATE() , получаваме грешка:

SET @date = '2020-10-01';
SELECT DATE_ADD(@date, 2) AS 'DATE_ADD 2';

Резултат:

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

Това е така, защото тази функция не поддържа този синтаксис.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте Unix timestamp в четлива от човека дата с помощта на MySQL

  2. Как да предоставим разрешения за отдалечен достъп до mysql сървър за потребител?

  3. Грешка при инсталиране на mysql-python:Не мога да отворя включения файл 'config-win.h'

  4. Конвертирайте BufferedInputStream в изображение

  5. Вземете най-новата дата от групирани MySQL данни