I MySQL kan du bruge TO_DAYS()
funktion for at finde ud af, hvor mange dage der er gået siden dag 0 for en bestemt dato. For eksempel kan du overføre dagens dato til denne funktion, og den vil returnere, hvor mange dage der er gået siden dag 0 .
Denne artikel indeholder eksempler til demonstration.
Syntaks
Syntaksen ser sådan ud:
TO_DAYS(date)
Hvor date
er den dato, der skal bruges i beregningen.
Eksempel
Her er et eksempel til at demonstrere.
SELECT TO_DAYS('1999-12-31');
Resultat:
+-----------------------+ | TO_DAYS('1999-12-31') | +-----------------------+ | 730484 | +-----------------------+
Bemærk, at MySQL-dokumentationen anbefaler, at denne funktion ikke er beregnet til brug med værdier, der går forud for fremkomsten af den gregorianske kalender (1582). Dette skyldes, at den ikke tager højde for de dage, der gik tabt, da kalenderen blev ændret.
Eksempel 2 – Aktuel dato
Her er et eksempel, der bruger den aktuelle dato.
SELECT CURDATE(), TO_DAYS(CURDATE());
Resultat:
+------------+--------------------+ | CURDATE() | TO_DAYS(CURDATE()) | +------------+--------------------+ | 2018-06-26 | 737236 | +------------+--------------------+
Først bruger jeg CURDATE()
funktion for at returnere den aktuelle dato, så sender jeg den funktion til TO_DAYS()
funktion til at returnere det antal dage, det har været siden dag 0 .
TO_DAYS() mod FROM_DAYS()
FROM_DAYS()
funktion er det modsatte af TO_DAYS()
, som, givet en dato dato, returnerer dagnummeret. Her er et eksempel for at demonstrere forholdet mellem disse to 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 dette eksempel bruger jeg TO_DAYS()
for at returnere antallet af dage fra den aktuelle dato. Jeg bruger derefter FROM_DAYS()
for at returnere datoen fra den værdi (som, som forventet, går tilbage til den oprindelige værdi af CURDATE()
).