No MariaDB,
DAYOFMONTH() é uma função interna de data e hora que retorna o dia do mês a partir de uma determinada data. Ele aceita um argumento, que é a data da qual você deseja extrair 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:
DAYOFMONTH(date) Onde
date é a data da qual extrair o dia. Exemplo
Aqui está um exemplo:
SELECT DAYOFMONTH('2030-01-25'); Resultado:
+--------------------------+| DAYOFMONTH('2030-01-25') |+--------------------------+| 25 |+--------------------------+ Valores de data e hora
Também funciona com valores de data e hora:
SELECT DAYOFMONTH('2030-01-25 10:30:45'); Resultado:
+-----------------------------------+| DAYOFMONTH('2030-01-25 10:30:45') |+--------------------------------- --+| 25 |+-----------------------------------+ Zero Dias
Aqui está um exemplo que usa um dia zero na data:
SELECT DAYOFMONTH('2030-00-00'); Resultado:
+--------------------------+| DAYOFMONTH('2030-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 DAYOFMONTH(20300125); Resultado:
+----------------------+| DIADEMÊS(20300125) |+----------------------+| 25 |+----------------------+
Ou mesmo o seguinte (que usa um ano de dois dígitos):
SELECT DAYOFMONTH(300125); Resultado:
+--------------------+| DIADEMÊS(300125) |+--------------------+| 25 |+--------------------+
Mas deve fazer sentido como uma data. Veja o que acontece se eu aumentar a parte do dia para um dia inválido:
SELECT DAYOFMONTH(20300135); Resultado:
+----------------------+| DIADEMÊS(20300135) |+----------------------+| NULO |+----------------------+
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
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25'); Resultado (usando saída vertical):
DAYOFMONTH('2030/01/25'):25DAYOFMONTH('2030,01,25'):25DAYOFMONTH('2030:01:25'):25DAYOFMONTH('2030;01!25'):25 Data atual
Podemos passar NOW() como argumento de data para usar a data atual:
SELECT
NOW(),
DAYOFMONTH(NOW());
Resultado:
+---------------------+-------------------+| AGORA() | DIADEMÊS(AGORA()) |+---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 |+---------------------+-------------------+
Argumentos inválidos
Quando passado um argumento inválido, DAYOFMONTH() retorna null :
SELECT DAYOFMONTH('Homer');
Resultado:
+----------+| DAYOFMONTH('Homer') |+--------------------------------+| NULL |+---------------------+ Argumento ausente
Chamando DAYOFMONTH() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT DAYOFMONTH();
Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'DAYOFMONTH'
E outro exemplo:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08');
Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'DAYOFMONTH'