Når du bruger MySQL, kan du bruge MAKEDATE()
funktion til at returnere en dato fra års- og dag-i-årets dele.
Du giver med andre ord to argumenter; den ene er året, og den anden er dagen i året. MAKEDATE()
funktion vil derefter returnere datoværdien baseret på disse to argumenter.
Syntaks
Syntaksen ser sådan ud:
MAKEDATE(year,dayofyear)
Hvor year
er årsdelen og dayofyear
er årets del.
Eksempel 1 – Grundlæggende brug
Her er et eksempel til at demonstrere.
SELECT MAKEDATE(2021,10);
Resultat:
+-------------------+ | MAKEDATE(2021,10) | +-------------------+ | 2021-01-10 | +-------------------+
Så fordi 10
betyder den 10. dag i året, det betyder, at det er den 10. januar.
Eksempel 2 – En større dag-i-året-værdi
Her er et eksempel, der bruger en større dag-i-år-værdi.
SELECT MAKEDATE(2021,350);
Resultat:
+--------------------+ | MAKEDATE(2021,350) | +--------------------+ | 2021-12-16 | +--------------------+
Så i dette tilfælde resulterer årets 350. dag i den 16. december.
Du kan også bruge værdier større end 365 (eller 366 for skudår). Hvis du gør dette, vil resultatet bladre over til et nyt kalenderår efter behov.
SELECT MAKEDATE(2021,500), MAKEDATE(2021,5000);
Resultat:
+--------------------+---------------------+ | MAKEDATE(2021,500) | MAKEDATE(2021,5000) | +--------------------+---------------------+ | 2022-05-15 | 2034-09-09 | +--------------------+---------------------+
Eksempel 3 – skudår
Vær opmærksom på skudår, når du bruger denne funktion.
SELECT MAKEDATE(2020,350), MAKEDATE(2021,350);
Resultat:
+--------------------+--------------------+ | MAKEDATE(2020,350) | MAKEDATE(2021,350) | +--------------------+--------------------+ | 2020-12-15 | 2021-12-16 | +--------------------+--------------------+
I dette tilfælde er 2020 et skudår. Og fordi februar har en ekstra dag i skudår, påvirker dette resultatet af de resterende dag-i-år-værdier.
Eksempel 4 – Nulværdier
Hvis du angiver en nulværdi, er resultatet NULL
.
SELECT MAKEDATE(2020,0);
Resultat:
+------------------+ | MAKEDATE(2020,0) | +------------------+ | NULL | +------------------+