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

MariaDB DAY() Explicado


No MariaDB, DAY() é um sinônimo para DAYOFMONTH() . Retorna o dia do mês a partir de uma determinada data.

Ele aceita um argumento, que é a data da qual você deseja retornar o dia do mês.

O resultado está no intervalo 1 para 31 . No entanto, se a data tiver uma parte de dia zero (por exemplo, '0000-00-00' ou '2021-00-00' ), o resultado é 0 .

Sintaxe


A sintaxe fica assim:
DAY(date) 

Onde date é a data da qual extrair o dia.

Exemplo


Aqui está um exemplo:
SELECT DAY('2045-05-18'); 

Resultado:
+-------------------+| DIA('2045-05-18') |+-------------------+| 18 |+-------------------+

Valores de data e hora


Também funciona com valores de data e hora:
SELECT DAY('2045-05-18 01:10:15'); 

Resultado:
+----------------------------+| DAY('2045-05-18 01:10:15') |+-----------------------------+| 18 |+----------------------------+

Zero Dias


Aqui está um exemplo que usa um dia zero na data:
SELECT DAY('0000-00-00'); 

Resultado:
+-------------------+| DIA('0000-00-00') |+-------------------+| 0 |+-------------------+

Datas numéricas


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

Exemplo
SELECT DAY(20220308); 

Resultado:
+---------------+| DIA(20220308) |+---------------+| 8 |+---------------+

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

Resultado:
+-------------+| DIA(220308) |+-------------+| 8 |+-------------+

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

Resultado:
+-------------+| DIA(220358) |+-------------+| 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 
    DAY('2028/12/30'),
    DAY('2028,12,30'),
    DAY('2028:12:30'),
    DAY('2028;12!30'); 

Resultado (usando saída vertical):
DAY('2028/12/30'):30DAY('2028,12,30'):30DAY('2028:12:30'):30DAY('2028;12!30'):30 

Data atual


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

Resultado:
+----------+------------+| AGORA() | DIA(AGORA()) |+---------------------+------------+| 2021-05-13 09:41:03 | 13 |+----------+------------+

Argumentos inválidos


Quando passado um argumento inválido, DAY() retorna null :
SELECT DAY('Oops!'); 

Resultado:
+--------------+| DAY('Ops!') |+--------------+| NULL |+--------------+

Argumento ausente


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

Resultado:
ERRO 1064 (42000):Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MariaDB para a sintaxe correta para usar perto de ')' na linha 1

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

Resultado:
ERRO 1064 (42000):Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à versão do seu servidor MariaDB para a sintaxe correta a ser usada perto de ' '2045-05-08')' na linha 1