Korzystając z MySQL, mamy możliwość użycia funkcji ADDDATE() i DATE_ADD() działa zawsze, gdy chcemy dodać określony przedział czasowy do danej daty. Obie te funkcje robią to samo, ale jest między nimi jedna różnica.
W tym artykule pokazano różnicę między ADDDATE() i DATE_ADD() w MySQL.
Składnia
Różnica między tymi dwiema funkcjami polega na ich składni. Jedna funkcja pozwala na dwie różne formy, podczas gdy druga pozwala na tylko jedną formę.
DATE_ADD()
DATE_ADD() składnia wygląda tak.
DATE_ADD(date,INTERVAL expr unit)
Akceptuje wartość daty, po której następuje INTERVAL słowo kluczowe oraz wyrażenie i jednostkę, dla której należy dodać datę podaną przez pierwszy argument.
DODAJDATA()
ADDDATE() składnia pozwala na dwie formy. Możesz użyć jednego z następujących formularzy.
ADDDATE(date,INTERVAL expr unit)
Lub
ADDDATE(expr,days)
Pierwsza forma jest dokładnie taka sama jak DATE_ADD() składnia. W rzeczywistości, używając tej składni, ADDDATE() funkcja jest synonimem DATE_ADD() .
Jednak jest to druga forma składni, która odróżnia te dwie funkcje. Ten drugi formularz jest dostępny tylko przy użyciu funkcji ADDDATE() funkcji i pozwala na użycie skróconego sposobu określenia liczby dni do dodania do daty.
Przykład
Oto przykład pokazujący różnicę między tymi dwiema formami.
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'; Wynik:
+------------+------------+------------+ | DATE_ADD | ADDDATE 1 | ADDDATE 2 | +------------+------------+------------+ | 2020-10-03 | 2020-10-03 | 2020-10-03 | +------------+------------+------------+
Ale jeśli spróbujemy użyć drugiego formularza w ADD_DATE() , pojawia się błąd:
SET @date = '2020-10-01'; SELECT DATE_ADD(@date, 2) AS 'DATE_ADD 2';
Wynik:
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
Dzieje się tak, ponieważ ta funkcja nie obsługuje tej składni.