I MariaDB, DATEDIFF() är en inbyggd datum- och tidsfunktion som returnerar skillnaden, i dagar, mellan två datum.
Den accepterar två argument, som båda är datum- eller datetime-uttryck. Den subtraherar sedan det andra datumet från det första.
Syntax
Syntaxen ser ut så här:
DATEDIFF(expr1,expr2)
Den returnerar sedan expr1 - expr2 .
Exempel
Här är ett exempel:
SELECT DATEDIFF('2030-01-25', '2030-01-20'); Resultat:
+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
| 5 |
+--------------------------------------+ Här är den igen, men med datum ombytta:
SELECT DATEDIFF('2030-01-20', '2030-01-25'); Resultat:
+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
| -5 |
+--------------------------------------+ Datetime-värden
Här är ett exempel som använder datetime-värden:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59'); Resultat:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
| 5 |
+--------------------------------------------------------+ Här är ett annat exempel:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59'); Resultat:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
| 0 |
+--------------------------------------------------------+
I det här fallet, även om det var nästan en hel dag, var det inte riktigt, och så resultatet är 0 .
Aktuellt datum
Här skickar vi NOW() som det andra argumentet:
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW()); Resultat:
+---------------------+-------------------------------+
| NOW() | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 | 3177 |
+---------------------+-------------------------------+ I det här fallet är det 3 177 dagar mellan nu och det andra datumet.
Ogiltiga argument
När alla ogiltiga argument skickades, DATEDIFF() returnerar null :
SELECT DATEDIFF('Homer', 'Simpson'); Resultat:
+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
| NULL |
+------------------------------+ Argument saknas
Anropar DATEDIFF() fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT DATEDIFF(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
Och:
SELECT DATEDIFF('2030-05-21'); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'