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