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'