Når du bruger MySQL, har vi mulighed for at bruge ADDDATE()
og DATE_ADD()
fungerer, når vi ønsker at tilføje et bestemt tidsinterval til en given dato. Begge disse funktioner gør det samme, men der er én forskel mellem dem.
Denne artikel demonstrerer forskellen mellem ADDDATE()
og DATE_ADD()
i MySQL.
Syntaks
Forskellen mellem disse to funktioner ligger i deres syntaks. Den ene funktion giver mulighed for to forskellige former, mens den anden kun tillader én form.
DATE_ADD()
DATE_ADD()
syntaks går sådan her.
DATE_ADD(date,INTERVAL expr unit)
Dette accepterer en datoværdi efterfulgt af INTERVAL
nøgleord og det udtryk og den enhed, der skal tilføjes til datoen fra det første argument.
ADDDATE()
ADDDATE()
syntaks tillader to former. Du kan bruge en af følgende formularer.
ADDDATE(date,INTERVAL expr unit)
Eller
ADDDATE(expr,days)
Den første form er nøjagtig den samme som DATE_ADD()
syntaks. Faktisk, når du bruger denne syntaks, er ADDDATE()
funktion er et synonym for DATE_ADD()
.
Det er dog den anden form for syntaksen, der adskiller de to funktioner. Denne anden formular er kun tilgængelig, når du bruger ADDDATE()
funktion, og det giver dig mulighed for at bruge en stenografi til at angive antallet af dage, der skal føjes til datoen.
Eksempel
Her er et eksempel for at demonstrere forskellen mellem de to former.
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';
Resultat:
+------------+------------+------------+ | DATE_ADD | ADDDATE 1 | ADDDATE 2 | +------------+------------+------------+ | 2020-10-03 | 2020-10-03 | 2020-10-03 | +------------+------------+------------+
Men hvis vi prøver at bruge den anden form på ADD_DATE()
, får vi en fejl:
SET @date = '2020-10-01'; SELECT DATE_ADD(@date, 2) AS 'DATE_ADD 2';
Resultat:
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
Dette skyldes, at denne funktion ikke understøtter denne syntaks.