In MariaDB, DATEDIFF() è una funzione di data e ora incorporata che restituisce la differenza, in giorni, tra due date.
Accetta due argomenti, entrambi espressioni date o datetime. Quindi sottrae la seconda data dalla prima.
Sintassi
La sintassi è questa:
DATEDIFF(expr1,expr2)
Quindi restituisce expr1 - expr2 .
Esempio
Ecco un esempio:
SELECT DATEDIFF('2030-01-25', '2030-01-20'); Risultato:
+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
| 5 |
+--------------------------------------+ Eccolo di nuovo, ma con le date scambiate:
SELECT DATEDIFF('2030-01-20', '2030-01-25'); Risultato:
+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
| -5 |
+--------------------------------------+ Valori di data e ora
Ecco un esempio che utilizza i valori datetime:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59'); Risultato:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
| 5 |
+--------------------------------------------------------+ Ecco un altro esempio:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59'); Risultato:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
| 0 |
+--------------------------------------------------------+
In questo caso, anche se è stata quasi un'intera giornata, non è andata del tutto e quindi il risultato è 0 .
Data attuale
Qui passiamo NOW() come secondo argomento:
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW()); Risultato:
+---------------------+-------------------------------+
| NOW() | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 | 3177 |
+---------------------+-------------------------------+ In questo caso mancano 3.177 giorni da qui alla seconda data.
Argomenti non validi
Quando vengono passati argomenti non validi, DATEDIFF() restituisce null :
SELECT DATEDIFF('Homer', 'Simpson'); Risultato:
+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
| NULL |
+------------------------------+ Argomento mancante
Chiamando DATEDIFF() il numero errato di argomenti, o senza passare alcun argomento, genera un errore:
SELECT DATEDIFF(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
E:
SELECT DATEDIFF('2030-05-21'); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'