I MariaDB, TO_DAYS() er en indbygget dato- og tidsfunktion, der returnerer antallet af dage fra starten af standardkalenderen (0000-00-00), baseret på en given dato.
Du sender datoen videre til funktionen, når du kalder den.
TO_DAYS() funktion er det modsatte af FROM_DAYS() funktion.
Syntaks
Syntaksen ser sådan ud:
TO_DAYS(date)
Hvor date er den dato, hvor antallet af dage siden 0000-00-00 skal returneres.
Eksempel
Her er et eksempel:
SELECT TO_DAYS('2028-12-31'); Resultat:
+-----------------------+
| TO_DAYS('2028-12-31') |
+-----------------------+
| 741077 |
+-----------------------+ Baseret på dagens dato
Her er et eksempel, der bruger NOW() for at returnere antallet af dage mellem 0000-00-00 og i dag:
SELECT
NOW(),
TO_DAYS(NOW()); Resultat:
+---------------------+----------------+ | NOW() | TO_DAYS(NOW()) | +---------------------+----------------+ | 2021-05-23 09:56:45 | 738298 | +---------------------+----------------+
Ugyldige argumenter
Når et ugyldigt argument sendes, TO_DAYS() returnerer NULL med en advarsel:
SELECT TO_DAYS('Oops!'); Resultat:
+------------------+
| TO_DAYS('Oops!') |
+------------------+
| NULL |
+------------------+
1 row in set, 1 warning (0.000 sec) Tjek advarslen:
SHOW WARNINGS; Resultat:
+---------+------+-----------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------+ | Warning | 1292 | Incorrect datetime value: 'Oops!' | +---------+------+-----------------------------------+
Manglende argument
Kalder TO_DAYS() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT TO_DAYS(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Og endnu et eksempel:
SELECT TO_DAYS( '2028-12-31', '2029-12-31' ); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Pregegoriansk kalender
TO_DAYS() funktion er ikke designet til brug med datoer før fremkomsten af den gregorianske kalender (som blev introduceret i oktober 1582). Resultaterne vil ikke være pålidelige, da de ikke tager højde for de tabte dage, hvor kalenderen blev ændret fra den julianske kalender.