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

Como obter o nome curto do mês de uma data no MariaDB


No MariaDB, você pode usar o DATE_FORMAT() função para retornar várias partes de uma data. Uma das coisas que você pode retornar é o nome curto do mês. Por exemplo Nov ou Dec (em vez de November ou December ).

O especificador de formato "Nome de mês curto" (%b )


A chave para retornar o nome curto do mês ao usar o DATE_FORMAT() função é usar o especificador de formato aplicável.

No MariaDB, o especificador de formato para o nome curto do mês é:%b

Exemplo


Segue um exemplo para demonstrar:
SELECT DATE_FORMAT('2023-12-25', '%b');

Resultado:
+---------------------------------+
| DATE_FORMAT('2023-12-25', '%b') |
+---------------------------------+
| Dec                             |
+---------------------------------+

Aqui está outro exemplo que percorre os vários meses do ano:
SELECT 
    DATE_FORMAT('2023-01-25', '%b') AS "1",
    DATE_FORMAT('2023-02-25', '%b') AS "2",
    DATE_FORMAT('2023-03-25', '%b') AS "3",
    DATE_FORMAT('2023-04-25', '%b') AS "4",
    DATE_FORMAT('2023-05-25', '%b') AS "5",
    DATE_FORMAT('2023-06-25', '%b') AS "6",
    DATE_FORMAT('2023-07-25', '%b') AS "7",
    DATE_FORMAT('2023-08-25', '%b') AS "8",
    DATE_FORMAT('2023-09-25', '%b') AS "9",
    DATE_FORMAT('2023-10-25', '%b') AS "10",
    DATE_FORMAT('2023-11-25', '%b') AS "11",
    DATE_FORMAT('2023-12-25', '%b') AS "12";

Resultado (usando saída vertical):
 1: Jan
 2: Feb
 3: Mar
 4: Apr
 5: May
 6: Jun
 7: Jul
 8: Aug
 9: Sep
10: Oct
11: Nov
12: Dec

Você também pode retornar outras unidades de data e hora, mas este artigo é especificamente sobre como retornar o nome curto do mês. Veja MariaDB Format Strings para uma lista de especificadores de formato que podem ser usados ​​com DATE_FORMAT() .

Outras abordagens


Existem outras maneiras de obter o nome curto do mês de uma data que envolve cortar a primeira parte do mês.

No entanto, isso pode ser mais propenso a erros do que o método acima (além de ser mais complicado). Você pode obter alguns resultados inesperados ao usar esse método, especialmente ao trabalhar com idiomas diferentes.

Aqui estão alguns exemplos para demonstrar o que quero dizer.

Em vez de usar o %b especificador de formato como fizemos no exemplo anterior, podemos usar o %M especificador de formato para retornar o nome completo do mês e, em seguida, retornar abreviar esse resultado com uma função como LEFT() .

Exemplo:
SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Short;

Resultado:
+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Alternativamente, poderíamos usar uma função como CAST() para converter para um tipo de dados com apenas três caracteres, como este:
SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    CAST(DATE_FORMAT('2023-10-25', '%M') AS CHAR(3)) AS Short;

Resultado:
+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Isso funciona bem ao trabalhar com o idioma inglês (e talvez alguns outros idiomas). Mas vamos ver o que acontece quando mudamos para um idioma diferente – digamos, tailandês:
SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M', 'th_TH'), 3) AS Short;

Resultado:
+--------------------+-----------+
| Full               | Short     |
+--------------------+-----------+
| ตุลาคม              | ตุล        |
+--------------------+-----------+

No entanto, aqui está o que acontece quando usamos o %b especificador de formato para retornar o nome curto do mês:
SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    DATE_FORMAT('2023-10-25', '%b', 'th_TH') AS Short;

Resultado:
+--------------------+----------+
| Full               | Short    |
+--------------------+----------+
| ตุลาคม              | ต.ค.     |
+--------------------+----------+

Ele retorna um resultado diferente.

Então eu recomendo usar o %b especificador de formato sempre que possível.