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 | +------------------+