MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como DAYOFYEAR() funciona no MariaDB


No MariaDB, DAYOFYEAR() é uma função interna de data e hora que retorna o dia do ano a partir de uma determinada data.

Ele aceita um argumento, que é a data da qual você deseja extrair o dia do ano.

Ele retorna o dia como um número no intervalo 1 para 366 .

Sintaxe


A sintaxe fica assim:
DAYOFYEAR(date) 

Onde date é a data a partir da qual se obtém o dia do ano.

Exemplo


Aqui está um exemplo:
SELECT DAYOFYEAR('2030-12-25'); 

Resultado:
+-------------------------+| DAYOFYEAR('2030-12-25') |+-------------------------+| 359 |+-------------------------+

Valores de data e hora


Também funciona com valores de data e hora:
SELECT DAYOFYEAR('2030-02-01 10:30:45'); 

Resultado:
+----------------------------------+| DAYOFYEAR('2030-02-01 10:30:45') |+--------------------------------- -+| 32 |+----------------------------------+

Zero Dias


Zero dias resultam em null .

Exemplo:
SELECT DAYOFYEAR('2030-00-00'); 

Resultado:
+-------------------------+| DAYOFYEAR('2030-00-00') |+-------------------------+| NULO |+-------------------------+

Datas numéricas


Também é possível passar datas como um número, desde que faça sentido como uma data.

Exemplo
SELECT DAYOFYEAR(20301125); 

Resultado:
+----------+| DIAANO(20301125) |+---------------------+| 329 |+---------------------+

Ou mesmo o seguinte (que usa um ano de dois dígitos):
SELECT DAYOFYEAR(301125); 

Resultado:
+-------------------+| DIAANO(301125) |+-------------------+| 329 |+-------------------+

Mas deve fazer sentido como uma data. Veja o que acontece se eu aumentar a parte do dia para um dia inválido:
SELECT DAYOFYEAR(20300135); 

Resultado:
+----------+| DIAANO(20300135) |+---------------------+| NULL |+---------------------+

Outros delimitadores


Você pode usar outros delimitadores para a data. O MariaDB é bastante tolerante quando se trata de delimitadores de datas. Aqui estão alguns exemplos válidos:
SELECT 
    DAYOFYEAR('2030/06/25'),
    DAYOFYEAR('2030,06,25'),
    DAYOFYEAR('2030:06:25'),
    DAYOFYEAR('2030;06!25'); 

Resultado (usando saída vertical):
DAYOFYEAR('2030/06/25'):176DAYOFYEAR('2030,06,25'):176DAYOFYEAR('2030:06:25'):176DAYOFYEAR('2030;06!25'):176 

Data atual


Podemos passar NOW() como argumento de data para usar a data atual:
SELECT 
    NOW(),
    DAYOFYEAR(NOW()); 

Resultado:
+---------------------+------------------+| AGORA() | DIAANO(AGORA()) |+---------------------+------------------+| 2021-05-16 09:05:57 | 136 |+---------------------+------------------+

Argumentos inválidos


Quando passado um argumento inválido, DAYOFYEAR() retorna null :
SELECT DAYOFYEAR('Friday'); 

Resultado:
+----------+| DAYOFYEAR('Sexta-feira') |+---------------------+| NULL |+---------------------+

Argumento ausente


Chamando DAYOFYEAR() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT DAYOFYEAR(); 

Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'DAYOFYEAR'

E outro exemplo:
SELECT DAYOFYEAR('2030-01-25', '2045-05-08'); 

Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'DAYOFYEAR'