sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona DATEDIFF() en MariaDB

En MariaDB, DATEDIFF() es una función de fecha y hora incorporada que devuelve la diferencia, en días, entre dos fechas.

Acepta dos argumentos, los cuales son expresiones de fecha o fecha y hora. Luego resta la segunda fecha de la primera.

Sintaxis

La sintaxis es así:

DATEDIFF(expr1,expr2)

Luego devuelve expr1 - expr2 .

Ejemplo

He aquí un ejemplo:

SELECT DATEDIFF('2030-01-25', '2030-01-20');

Resultado:

+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
|                                    5 |
+--------------------------------------+

Aquí está de nuevo, pero con las fechas intercambiadas:

SELECT DATEDIFF('2030-01-20', '2030-01-25');

Resultado:

+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
|                                   -5 |
+--------------------------------------+

Valores de fecha y hora

Aquí hay un ejemplo que usa valores de fecha y hora:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');

Resultado:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
|                                                      5 |
+--------------------------------------------------------+

Aquí hay otro ejemplo:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');

Resultado:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
|                                                      0 |
+--------------------------------------------------------+

En este caso, aunque fue casi un día entero, no fue del todo así que el resultado es 0 .

Fecha actual

Aquí, pasamos NOW() como segundo argumento:

SELECT 
    NOW(),
    DATEDIFF('2030-01-20', NOW());

Resultado:

+---------------------+-------------------------------+
| NOW()               | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 |                          3177 |
+---------------------+-------------------------------+

En este caso hay 3177 días entre ahora y la segunda fecha.

Argumentos no válidos

Cuando se pasan argumentos no válidos, DATEDIFF() devuelve null :

SELECT DATEDIFF('Homer', 'Simpson');

Resultado:

+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
|                         NULL |
+------------------------------+

Argumento faltante

Llamando a DATEDIFF() el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:

SELECT DATEDIFF();

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'

Y:

SELECT DATEDIFF('2030-05-21');

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'