Aqui estão três maneiras de retornar o nome do mês de uma data no MariaDB.
O MONTHNAME() Função
O
MONTHNAME() A função foi projetada especificamente para retornar o nome do mês de uma data. Para fazer isso, passe a data para a função ao chamá-la. O nome completo do mês será retornado. Exemplo:
SELECT MONTHNAME('2021-08-19'); Resultado:
+-------------------------+
| MONTHNAME('2021-08-19') |
+-------------------------+
| August |
+-------------------------+ O idioma usado para o nome do mês é controlado pelo valor do
lc_time_names variável do sistema. Veja MONTHNAME() para um exemplo de como isso afeta a saída. O DATE_FORMAT() Função
O
DATE_FORMAT() função formata uma determinada data em um formato especificado. Você especifica a data e o formato ao chamar a função. Você pode retornar o nome completo do mês passando
%M como a string de formato. Exemplo:
SELECT DATE_FORMAT('2021-08-19', '%M'); Resultado:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%M') |
+---------------------------------+
| August |
+---------------------------------+ Como com
MONTHNAME() , o idioma usado para o nome do mês é controlado pelo valor do lc_time_names variável do sistema. No entanto, o DATE_FORMAT() A função aceita um terceiro argumento opcional que permite especificar a localidade. Aqui está um exemplo de especificação de uma localidade:
SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES'); Resultado:
+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%M', 'ca_ES') |
+------------------------------------------+
| agost |
+------------------------------------------+ Nome abreviado do mês
Passando
%b para o DATE_FORMAT() A função retorna o nome curto do mês. Exemplo:
SELECT DATE_FORMAT('2021-08-19', '%b'); Resultado:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%b') |
+---------------------------------+
| Aug |
+---------------------------------+ Isso pode ser replicado com o
MONTHNAME() função usando LEFT() para pegar os 3 primeiros caracteres do nome do mês. Exemplo:
SELECT LEFT(MONTHNAME('2021-08-19'), 3); Resultado:
+----------------------------------+
| LEFT(MONTHNAME('2021-08-19'), 3) |
+----------------------------------+
| Aug |
+----------------------------------+ O mesmo conceito pode ser alcançado convertendo o resultado de
MONTHNAME() para um tipo de dados de três caracteres com uma função como CAST() . No entanto, embora essa abordagem funcione em
en_US , pode nem sempre funcionar em outros idiomas. Por exemplo:SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
MONTHNAME('2021-08-19') AS "Full"; Resultado:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+