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'