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