I MariaDB, TO_DAYS()
är en inbyggd datum- och tidsfunktion som returnerar antalet dagar från början av standardkalendern (0000-00-00), baserat på ett givet datum.
Du skickar datumet till funktionen när du ringer den.
TO_DAYS()
funktion är motsatsen till FROM_DAYS()
funktion.
Syntax
Syntaxen ser ut så här:
TO_DAYS(date)
Där date
är det datum för vilket antalet dagar sedan 0000-00-00 ska returneras.
Exempel
Här är ett exempel:
SELECT TO_DAYS('2028-12-31');
Resultat:
+-----------------------+ | TO_DAYS('2028-12-31') | +-----------------------+ | 741077 | +-----------------------+
Baserat på dagens datum
Här är ett exempel som använder NOW()
för att returnera antalet dagar mellan 0000-00-00 och idag:
SELECT
NOW(),
TO_DAYS(NOW());
Resultat:
+---------------------+----------------+ | NOW() | TO_DAYS(NOW()) | +---------------------+----------------+ | 2021-05-23 09:56:45 | 738298 | +---------------------+----------------+
Ogiltiga argument
När ett ogiltigt argument skickades, TO_DAYS()
returnerar NULL
med en varning:
SELECT TO_DAYS('Oops!');
Resultat:
+------------------+ | TO_DAYS('Oops!') | +------------------+ | NULL | +------------------+ 1 row in set, 1 warning (0.000 sec)
Kontrollera varningen:
SHOW WARNINGS;
Resultat:
+---------+------+-----------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------+ | Warning | 1292 | Incorrect datetime value: 'Oops!' | +---------+------+-----------------------------------+
Argument saknas
Anropar TO_DAYS()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT TO_DAYS();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Och ett annat exempel:
SELECT TO_DAYS( '2028-12-31', '2029-12-31' );
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Förgregoriansk kalender
TO_DAYS()
Funktionen är inte designad för användning med datum före tillkomsten av den gregorianska kalendern (som introducerades i oktober 1582). Resultaten kommer inte att vara tillförlitliga eftersom det inte tar hänsyn till de förlorade dagarna när kalendern ändrades från den julianska kalendern.