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

Como DAYNAME() funciona no MariaDB


No MariaDB, DAYNAME() é uma função interna de data e hora que retorna o nome do dia da semana para uma determinada data.

Ele aceita um argumento, que é a data da qual você deseja extrair o nome do dia.

Sintaxe


A sintaxe fica assim:
DAYNAME(date) 

Onde date é a data para obter o nome do dia.

Exemplo


Aqui está um exemplo:
SELECT DAYNAME('2045-10-17'); 

Resultado:
+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| Terça-feira |+-----------------------+

Idioma


O idioma usado para o nome do dia é controlado pelo valor do lc_time_names variável do sistema.

Aqui está um exemplo que mostra como isso afeta o resultado:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17'); 

Resultado:
+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| Dienstag |+-----------------------+

E voltando para en_US , que é o padrão:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17'); 

Resultado:
+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| Terça-feira |+-----------------------+

Aqui está uma lista de localidades suportadas pelo MariaDB e veja como retornar sua própria lista de localidades disponíveis.

Enquanto estamos nisso, aqui está uma postagem explicando como verificar o valor de seus lc_time_names variável do sistema.

Valores de data e hora


Também funciona com valores de data e hora:
SELECT DAYNAME('2030-01-25 10:30:45'); 

Resultado:
+--------------------------------+| DAYNAME('2030-01-25 10:30:45') |+--------------------------------+ | Sexta-feira |+--------------------------------+

Zero Dias


Ter um dia zero na data retorna null :
SELECT DAYNAME('2030-00-00'); 

Resultado:
+-----------------------+| DAYNAME('2030-00-00') |+-----------------------+| NULL |+-----------------------+

Datas numéricas


Também é possível passar datas como um número, desde que faça sentido como uma data.

Exemplo
SELECT DAYNAME(20201108); 

Resultado:
+-------------------+| DAYNAME(20201108) |+-------------------+| Domingo |+-------------------+

Anos de dois dígitos são bons:
SELECT DAYNAME(201108); 

Resultado:
+-----------------+| DAYNAME(201108) |+-----------------+| Domingo |+-----------------+

Mas deve fazer sentido como uma data. Veja o que acontece se eu aumentar a parte do mês para um mês inválido:
SELECT DAYNAME(209908); 

Resultado:
+-----------------+| DAYNAME(209908) |+-----------------+| NULL |+-----------------+

Outros delimitadores


Você pode usar outros delimitadores para a data. O MariaDB é bastante tolerante quando se trata de delimitadores de datas. Aqui estão alguns exemplos válidos:
SELECT 
    DAYNAME('2027/08/19'),
    DAYNAME('2027,08,19'),
    DAYNAME('2027:08:19'),
    DAYNAME('2027;08!19'); 

Resultado (usando saída vertical):
DAYNAME('2027/08/19'):QuintaDAYNAME('2027,08,19'):QuintaDAYNAME('2027:08:19'):QuintaDAYNAME('2027;08!19'):Quinta 

Data atual


Podemos passar NOW() como argumento de data para usar a data atual:
SELECT 
    NOW(),
    DAYNAME(NOW()); 

Resultado:
+---------------------+----------------+| AGORA() | DAYNAME(AGORA()) |+---------------------+----------------+| 2021-05-13 13:29:10 | Quinta-feira |+---------------------+----------------+

Argumentos inválidos


Quando passado um argumento inválido, DAYNAME() retorna null :
SELECT DAYNAME('Dang!'); 

Resultado:
+------------------+| DAYNAME('Droga!') |+------------------+| NULO |+------------------+

Argumento ausente


Chamando DAYNAME() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT DAYNAME(); 

Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'DAYNAME'

E outro exemplo:
SELECT DAYNAME('2030-01-25', '2045-05-08'); 

Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'DAYNAME'