Como Converter Número de Datepart para Nome do Dia no SQL Server
Se você já trabalhou com SQL Server, provavelmente encontrou situações em que precisava extrair certas partes de uma data para facilitar o entendimento e a usabilidade. Um requisito comum é converter a representação numérica de um dia—obtida a partir da função datepart
—no seu nome correspondente (como “Segunda-feira” ou “Terça-feira”). Neste post do blog, exploraremos como realizar rapidamente essa conversão no SQL Server.
Entendendo o Problema
Quando você usa a função datepart
do SQL Server, recuperar o dia da semana a partir de uma data retornará um número entre 1 e 7, onde:
- 1 = Domingo
- 2 = Segunda-feira
- 3 = Terça-feira
- 4 = Quarta-feira
- 5 = Quinta-feira
- 6 = Sexta-feira
- 7 = Sábado
Por exemplo, executar a seguinte consulta retorna o dia da semana como um número:
SELECT DATEPART(dw, GETDATE());
Embora esse valor numérico possa ser útil, não é muito amigável; nosso objetivo é converter essa saída numérica em um formato mais legível, especificamente o nome do dia.
A Solução: Usando datename
Para obter o nome do dia em vez de um número, você pode utilizar a função DATENAME
no SQL Server. A função DATENAME
permite que você retorne o nome de uma parte específica da data para uma data especificada. Veja como você pode fazer isso:
Passo 1: Usando a Função DATENAME
Você pode simplesmente substituir a função datepart
por datename
na sua consulta SQL da seguinte forma:
SELECT DATENAME(weekday, GETDATE());
Explicação da Consulta:
- DATENAME: Esta função aceita dois parâmetros; o primeiro é a parte da data que você deseja recuperar (neste caso,
weekday
), e o segundo é a data da qual você deseja extrair a informação (neste caso, a data atual retornada peloGETDATE()
). - GETDATE(): Esta função retorna o timestamp atual do sistema de banco de dados.
Passo 2: Executando a Consulta
Quando você executar a declaração SELECT
acima, ela retornará o nome do dia atual, por exemplo, “Domingo,” “Segunda-feira,” etc., tornando muito mais fácil entender à primeira vista.
Conclusão
Usando a função DATENAME
no SQL Server, você pode converter sem esforço uma representação numérica de dia para um nome de dia mais significativo. Esta simples linha de código pode economizar seu tempo e tornar a saída de dados significativamente mais interpretável, especialmente em relatórios ou interfaces de usuário.
Na próxima vez que você precisar recuperar o dia da semana no SQL Server, lembre-se de que transformar um número em seu nome está a apenas uma consulta rápida de distância!
Sinta-se à vontade para experimentar com diferentes datas substituindo GETDATE()
por seu valor de data específico para ver como essas funções funcionam!