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

Como MONTHNAME() funciona no MariaDB


No MariaDB, MONTHNAME() é uma função interna de data e hora que retorna o nome do mês para uma determinada data.

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

Sintaxe


A sintaxe fica assim:
MONTHNAME(date) 

Onde date é a data para obter o nome do mês.

Exemplo


Aqui está um exemplo:
SELECT MONTHNAME('2041-11-14'); 

Resultado:
+-------------------------+| NOME DO MÊS('2041-11-14') |+-------------------------+| Novembro |+-------------------------+

Idioma


O idioma usado para o nome do mês é controlado pelo valor de lc_time_names variável do sistema.

Aqui está um exemplo que mostra como isso afeta o resultado:
SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14'); 

Resultado:
+-------------------------+| NOME DO MÊS('2041-11-14') |+-------------------------+| novembro |+-------------------------+

E voltando para en_US , que é o padrão:
SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14'); 

Resultado:
+-------------------------+| NOME DO MÊS('2041-11-14') |+-------------------------+| Novembro |+-------------------------+

Aqui está uma lista de localidades suportadas pelo MariaDB e veja como retornar sua própria lista de localidades disponíveis.

E aqui está um post explicando como verificar o valor de seus lc_time_names variável do sistema.

Valores de data e hora


Também funciona com valores de data e hora:
SELECT MONTHNAME('2041-01-15 10:30:45'); 

Resultado:
+----------------------------------+| NOME DO MÊS('2041-01-15 10:30:45') |+--------------------------------- -+| Janeiro |+----------------------------------+

Zero Meses


Ter um mês zero na data retorna null :
SELECT MONTHNAME('2030-00-00'); 

Resultado:
+-------------------------+| NOME DO MÊS('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 MONTHNAME(20201208); 

Resultado:
+----------+| NOME DO MÊS(20201208) |+---------------------+| Dezembro |+---------------------+

Anos de dois dígitos são bons:
SELECT MONTHNAME(201208); 

Resultado:
+-------------------+| NOME DO MÊS(201208) |+-------------------+| Dezembro |+-------------------+

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

Resultado:
+-------------------+| NOME DO MÊS(201299) |+-------------------+| 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 
    MONTHNAME('2027/08/19'),
    MONTHNAME('2027,08,19'),
    MONTHNAME('2027:08:19'),
    MONTHNAME('2027;08!19'); 

Resultado (usando saída vertical):
MONTHNAME('2027/08/19'):AugustMONTHNAME('2027,08,19'):AugustMONTHNAME('2027:08:19'):AugustMONTHNAME('2027;08!19'):Agosto 

Data atual


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

Resultado:
+---------------------+------------------+| AGORA() | NOME DO MÊS(AGORA()) |+---------------------+------------------+| 2021-05-14 10:11:16 | Maio |+---------------------+------------------+

Argumentos inválidos


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

Resultado:
+----------+| NOME DO MÊS('Errado!') |+---------------------+| NULL |+---------------------+

Argumento ausente


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

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

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

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