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

Come funziona TO_DAYS() in MariaDB

In MariaDB, TO_DAYS() è una funzione di data e ora incorporata che restituisce il numero di giorni dall'inizio del calendario standard (0000-00-00), in base a una determinata data.

Passi la data alla funzione quando la chiami.

Il TO_DAYS() la funzione è l'inverso di FROM_DAYS() funzione.

Sintassi

La sintassi è questa:

TO_DAYS(date)

Dove date è la data per la quale restituire il numero di giorni trascorsi da 0000-00-00.

Esempio

Ecco un esempio:

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

Risultato:

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

In base alla data odierna

Ecco un esempio che utilizza NOW() per restituire il numero di giorni tra 0000-00-00 e oggi:

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

Risultato:

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

Argomenti non validi

Quando viene passato un argomento non valido, TO_DAYS() restituisce NULL con un avviso:

SELECT TO_DAYS('Oops!');

Risultato:

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

Controlla l'avviso:

SHOW WARNINGS;

Risultato:

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

Argomento mancante

Chiamando TO_DAYS() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT TO_DAYS();

Risultato:

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

E un altro esempio:

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

Risultato:

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

Calendario pregregoriano

Il TO_DAYS() la funzione non è progettata per l'uso con date precedenti all'avvento del calendario gregoriano (che è stato introdotto nell'ottobre 1582). I risultati non saranno affidabili poiché non tengono conto dei giorni persi quando il calendario è cambiato rispetto al calendario giuliano.