I MySQL kan du använda TO_DAYS()
funktion för att ta reda på hur många dagar som har gått sedan dag 0 för ett visst datum. Till exempel kan du skicka dagens datum till den här funktionen, och det kommer att returnera hur många dagar det har gått sedan dag 0 .
Den här artikeln innehåller exempel att visa.
Syntax
Syntaxen ser ut så här:
TO_DAYS(date)
Där date
är det datum som ska användas i beräkningen.
Exempel
Här är ett exempel att visa.
SELECT TO_DAYS('1999-12-31');
Resultat:
+-----------------------+ | TO_DAYS('1999-12-31') | +-----------------------+ | 730484 | +-----------------------+
Observera att MySQL-dokumentationen rekommenderar att denna funktion inte är avsedd att användas med värden som föregår tillkomsten av den gregorianska kalendern (1582). Detta eftersom det inte tar hänsyn till de dagar som gick förlorade när kalendern ändrades.
Exempel 2 – Aktuellt datum
Här är ett exempel som använder det aktuella datumet.
SELECT CURDATE(), TO_DAYS(CURDATE());
Resultat:
+------------+--------------------+ | CURDATE() | TO_DAYS(CURDATE()) | +------------+--------------------+ | 2018-06-26 | 737236 | +------------+--------------------+
Först använder jag CURDATE()
funktion för att returnera det aktuella datumet, sedan skickar jag den funktionen till TO_DAYS()
funktion för att returnera antalet dagar det har gått sedan dag 0 .
TO_DAYS() kontra FROM_DAYS()
FROM_DAYS()
funktion är motsatsen till TO_DAYS()
, som, givet ett datumdatum, returnerar dagnumret. Här är ett exempel för att visa sambandet mellan dessa två funktioner:
SELECT CURDATE(), TO_DAYS(CURDATE()), FROM_DAYS(TO_DAYS(CURDATE()));
Resultat:
+------------+--------------------+-------------------------------+ | CURDATE() | TO_DAYS(CURDATE()) | FROM_DAYS(TO_DAYS(CURDATE())) | +------------+--------------------+-------------------------------+ | 2018-06-26 | 737236 | 2018-06-26 | +------------+--------------------+-------------------------------+
Så i det här exemplet använder jag TO_DAYS()
för att returnera antalet dagar från det aktuella datumet. Jag använder sedan FROM_DAYS()
för att returnera datumet från det värdet (som, som förväntat, återgår till det ursprungliga värdet för CURDATE()
).