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'