Ao usar o MySQL, você pode usar o
MAKEDATE()
função para retornar uma data das partes ano e dia do ano. Em outras palavras, você fornece dois argumentos; sendo um o ano e o outro o dia do ano. O
MAKEDATE()
A função retornará o valor de data com base nesses dois argumentos. Sintaxe
A sintaxe fica assim:
MAKEDATE(ano,diadoano)
Onde
year
é a parte do ano e dayofyear
é a parte do dia do ano. Exemplo 1 – Uso básico
Aqui está um exemplo para demonstrar.
SELECT MAKEDATE(2021,10);
Resultado:
+-------------------+| MAKEDATE(2021,10) |+-------------------+| 10/01/2021 |+-------------------+
Então, porque
10
significa o dia 10 do ano, isso significa que é o dia 10 de janeiro. Exemplo 2 – Um valor maior de um dia do ano
Aqui está um exemplo que usa um valor de dia do ano maior.
SELECT MAKEDATE(2021.350);
Resultado:
+--------------------+| MAKEDATE(2021.350) |+--------------------+| 16/12/2021 |+--------------------+
Portanto, neste caso, o 350º dia do ano resulta em 16 de dezembro.
Você também pode usar valores maiores que 365 (ou 366 para anos bissextos). Se você fizer isso, o resultado passará para um novo ano civil, conforme necessário.
SELECT MAKEDATE(2021.500), MAKEDATE(2021.5000);
Resultado:
+--------------------+---------------------+| MAKEDATE(2021.500) | MAKEDATE(2021,5000) |+--------------------+--------------------- +| 15-05-2022 | 2034-09-09 |+--------------------+---------------------+
Exemplo 3 – Anos bissextos
Esteja atento aos anos bissextos ao usar esta função.
SELECT MAKEDATE(2020.350), MAKEDATE(2021.350);
Resultado:
+--------------------+--------------------+| MAKEDATE(2020.350) | MAKEDATE(2021.350) |+--------------------+--------------------+ | 15-12-2020 | 16/12/2021 |+--------------------+--------------------+
Nesse caso, 2020 é um ano bissexto. E como fevereiro tem um dia extra durante os anos bissextos, isso afeta o resultado dos valores restantes do dia do ano.
Exemplo 4 - Valores zero
Se você fornecer um valor zero, o resultado seráNULL
.
SELECT MAKEDATE(2020,0);
Resultado:
+------------------+| MAKEDATE(2020,0) |+------------------+| NULO |+------------------+