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.