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

3 maneiras de obter o nome do mês de uma data no MariaDB


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                  |
+----------+-----------+-----------------------+
| ส.ค.     | สิง        | สิงหาคม                |
+----------+-----------+-----------------------+