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

3 maneiras de obter o nome do dia de uma data no MariaDB


Abaixo estão três abordagens que você pode usar para obter o nome do dia de uma data no MariaDB.

Duas dessas abordagens retornam o nome completo do dia e uma retorna o nome curto do dia.

O DAYNAME() Função


O DAYNAME() A função foi projetada especificamente para retornar o nome do dia de uma data. Basta passar a data ao chamar a função e ela retornará o nome completo do dia.

Exemplo:
SELECT DAYNAME('2021-08-19');

Resultado:
+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday              |
+-----------------------+

O idioma usado para o nome do dia é controlado pelo valor do lc_time_names variável do sistema. Veja DAYNAME() 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 dia da semana passando %W como a string de formato.

Exemplo:
SELECT DATE_FORMAT('2021-08-19', '%W');

Resultado:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday                        |
+---------------------------------+

Como com DAYNAME() , o idioma usado para o nome do dia é 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', '%W', 'ca_ES');

Resultado:
+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous                                   |
+------------------------------------------+

Nome do dia curto


Passando %a para o DATE_FORMAT() A função retorna o nome curto do dia da semana.

Exemplo:
SELECT DATE_FORMAT('2021-08-19', '%a');

Resultado:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu                             |
+---------------------------------+

Isso pode ser replicado com o DAYNAME() função usando LEFT() para pegar os 3 primeiros caracteres do nome do dia da semana.

Exemplo:
SELECT LEFT(DAYNAME('2021-08-19'), 3);

Resultado:
+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu                            |
+--------------------------------+

O mesmo efeito também pode ser obtido usando uma função como CAST() para converter o resultado em um tipo de dados com três caracteres.

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', '%a') AS "Short 1",
    LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
    DAYNAME('2021-08-19') AS "Full";

Resultado:
+---------+-----------+--------------------------+
| Short 1 | Short 2   | Full                     |
+---------+-----------+--------------------------+
| พฤ.     | พฤห       | พฤหัสบดี                   |
+---------+-----------+--------------------------+