När du använder MySQL kan du använda MAKEDATE()
funktion för att returnera ett datum från delarna år och dag på året.
Du ger med andra ord två argument; en är året och den andra är dagen på året. MAKEDATE()
funktion kommer då att returnera datumvärdet baserat på dessa två argument.
Syntax
Syntaxen ser ut så här:
MAKEDATE(year,dayofyear)
Där year
är årsdelen och dayofyear
är dagen på året.
Exempel 1 – Grundläggande användning
Här är ett exempel att visa.
SELECT MAKEDATE(2021,10);
Resultat:
+-------------------+ | MAKEDATE(2021,10) | +-------------------+ | 2021-01-10 | +-------------------+
Så därför att 10
betyder den 10:e dagen på året, det betyder att det är den 10:e januari.
Exempel 2 – Ett större värde på året
Här är ett exempel som använder ett större dag-på-år-värde.
SELECT MAKEDATE(2021,350);
Resultat:
+--------------------+ | MAKEDATE(2021,350) | +--------------------+ | 2021-12-16 | +--------------------+
Så i det här fallet resulterar årets 350:e dag i den 16:e december.
Du kan också använda värden större än 365 (eller 366 för skottår). Om du gör detta kommer resultatet att flyttas över till ett nytt kalenderår efter behov.
SELECT MAKEDATE(2021,500), MAKEDATE(2021,5000);
Resultat:
+--------------------+---------------------+ | MAKEDATE(2021,500) | MAKEDATE(2021,5000) | +--------------------+---------------------+ | 2022-05-15 | 2034-09-09 | +--------------------+---------------------+
Exempel 3 – skottår
Tänk på skottår när du använder den här funktionen.
SELECT MAKEDATE(2020,350), MAKEDATE(2021,350);
Resultat:
+--------------------+--------------------+ | MAKEDATE(2020,350) | MAKEDATE(2021,350) | +--------------------+--------------------+ | 2020-12-15 | 2021-12-16 | +--------------------+--------------------+
I det här fallet är 2020 ett skottår. Och eftersom februari har en extra dag under skottår, påverkar detta resultatet av de återstående värdena för årets dag.
Exempel 4 – Nollvärden
Om du anger ett nollvärde blir resultatet NULL
.
SELECT MAKEDATE(2020,0);
Resultat:
+------------------+ | MAKEDATE(2020,0) | +------------------+ | NULL | +------------------+