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

Cómo funciona TO_DAYS() en MariaDB

En MariaDB, TO_DAYS() es una función de fecha y hora integrada que devuelve el número de días desde el inicio del calendario estándar (0000-00-00), en función de una fecha determinada.

Pasas la fecha a la función cuando la llamas.

El TO_DAYS() la función es la inversa de FROM_DAYS() función.

Sintaxis

La sintaxis es así:

TO_DAYS(date)

Donde date es la fecha para la que se devuelve el número de días desde 0000-00-00.

Ejemplo

He aquí un ejemplo:

SELECT TO_DAYS('2028-12-31');

Resultado:

+-----------------------+
| TO_DAYS('2028-12-31') |
+-----------------------+
|                741077 |
+-----------------------+

Basado en la fecha de hoy

Aquí hay un ejemplo que usa NOW() para devolver el número de días entre 0000-00-00 y hoy:

SELECT
    NOW(),
    TO_DAYS(NOW());

Resultado:

+---------------------+----------------+
| NOW()               | TO_DAYS(NOW()) |
+---------------------+----------------+
| 2021-05-23 09:56:45 |         738298 |
+---------------------+----------------+

Argumentos no válidos

Cuando se pasa un argumento no válido, TO_DAYS() devuelve NULL con una advertencia:

SELECT TO_DAYS('Oops!');

Resultado:

+------------------+
| TO_DAYS('Oops!') |
+------------------+
|             NULL |
+------------------+
1 row in set, 1 warning (0.000 sec)

Compruebe la advertencia:

SHOW WARNINGS;

Resultado:

+---------+------+-----------------------------------+
| Level   | Code | Message                           |
+---------+------+-----------------------------------+
| Warning | 1292 | Incorrect datetime value: 'Oops!' |
+---------+------+-----------------------------------+

Argumento faltante

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

SELECT TO_DAYS();

Resultado:

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

Y otro ejemplo:

SELECT TO_DAYS( '2028-12-31', '2029-12-31' );

Resultado:

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

Calendario pregregoriano

El TO_DAYS() La función no está diseñada para usarse con fechas anteriores al advenimiento del calendario gregoriano (que se introdujo en octubre de 1582). Los resultados no serán confiables ya que no tienen en cuenta los días perdidos cuando el calendario cambió del calendario juliano.