Quando usi MySQL, puoi usare MAKEDATE()
funzione per restituire una data dalle parti dell'anno e del giorno dell'anno.
In altre parole, fornisci due argomenti; uno è l'anno e l'altro è il giorno dell'anno. Il MAKEDATE()
la funzione restituirà quindi il valore della data in base a questi due argomenti.
Sintassi
La sintassi è questa:
MAKEDATE(year,dayofyear)
Dove year
è la parte dell'anno e dayofyear
è la parte del giorno dell'anno.
Esempio 1 – Utilizzo di base
Ecco un esempio da dimostrare.
SELECT MAKEDATE(2021,10);
Risultato:
+-------------------+ | MAKEDATE(2021,10) | +-------------------+ | 2021-01-10 | +-------------------+
Quindi perché 10
significa il decimo giorno dell'anno, questo significa che è il 10 gennaio.
Esempio 2:un valore giornaliero maggiore
Ecco un esempio che utilizza un valore del giorno dell'anno più grande.
SELECT MAKEDATE(2021,350);
Risultato:
+--------------------+ | MAKEDATE(2021,350) | +--------------------+ | 2021-12-16 | +--------------------+
Quindi, in questo caso, il 350° giorno dell'anno risulta essere il 16 dicembre.
Puoi anche utilizzare valori maggiori di 365 (o 366 per gli anni bisestili). Se lo fai, il risultato passerà a un nuovo anno solare come richiesto.
SELECT MAKEDATE(2021,500), MAKEDATE(2021,5000);
Risultato:
+--------------------+---------------------+ | MAKEDATE(2021,500) | MAKEDATE(2021,5000) | +--------------------+---------------------+ | 2022-05-15 | 2034-09-09 | +--------------------+---------------------+
Esempio 3 – Anni bisestili
Prestare attenzione agli anni bisestili quando si utilizza questa funzione.
SELECT MAKEDATE(2020,350), MAKEDATE(2021,350);
Risultato:
+--------------------+--------------------+ | MAKEDATE(2020,350) | MAKEDATE(2021,350) | +--------------------+--------------------+ | 2020-12-15 | 2021-12-16 | +--------------------+--------------------+
In questo caso, il 2020 è un anno bisestile. E poiché febbraio ha un giorno in più durante gli anni bisestili, ciò influisce sul risultato dei restanti valori dei giorni dell'anno.
Esempio 4 – Valori zero
Se fornisci un valore zero, il risultato è NULL
.
SELECT MAKEDATE(2020,0);
Risultato:
+------------------+ | MAKEDATE(2020,0) | +------------------+ | NULL | +------------------+