MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona DATEDIFF() in MariaDB

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'