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 | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+