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

Como DAYOFMONTH() funciona no MariaDB


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'