Consulta t-sql: Classificar os dias da semana

Olá. Eu sou Adilson Paranhos. ,

Vamos usar a coluna Dia_Semana da tabela para classificar os dia da semana por extenso no sql sever (segunda, terça, quarta …domingo). Também mudar o tipo de dados datetime no formato brasileiro dd/mm/aaaa

Resultado:

cod_venda

dia_Semana

data_vendaBR

Valor

150

Quarta

31/07/2019

575

149

Quinta

01/08/2019

565

148

Quinta

01/08/2019

555

147

Sexta

02/08/2019

545

146

Sexta

02/08/2019

535

145

Sábado

03/08/2019

525

 


Para construirmos essa consulta no sqlserver para mostrar o weekday (dia da semana) iremos usar a função datepart ( weekday,  coluna tipo date/datetime ). Os valores retornados pela função:

datepart ( weekday,  data_venda ) = 1   /* domingo  */    

datepart ( weekday,  data_venda ) = 2   /* segunda  */    

datepart ( weekday,  data_venda ) = 3   /* terça  */    

datepart ( weekday,  data_venda ) = 4   /* quarta  */    

datepart ( weekday,  data_venda ) = 5   /* quinta  */    

datepart ( weekday,  data_venda ) = 6   /* sexta  */    

datepart ( weekday,  data_venda ) = 7   /* sábado  */   

Para “ datename sql server portugues“ , ou seja,  para retornar nome do dia da semana em português. Vamos usar o comando case when para classificar conforme o valor do dia da semana retornados pela função datepart .

select

cod_venda,

dia_semana = 

case

  when datepart(weekday, data_venda) = 1 then ‘Domingo’

  when datepart(weekday, data_venda) = 2 then ‘Segunda’

  when datepart(weekday, data_venda) = 3 thenTerça’

  when datepart(weekday, data_venda) = 4 then ‘Quarta’

  when datepart(weekday, data_venda) = 5 then ‘Quinta’

  when datepart(weekday, data_venda) = 6 then ‘Sexta’

  when datepart(weekday, data_venda) = 7 then ‘Sábado’ end,

data_venda,

valor

from bd_vendas.dbo.tab_venda

order by data_venda


Resultado:

cod_venda

dia_semana

data_venda

valor

150

Quarta

2019-07-31 00:00:00

575

149

Quinta

2019-08-01 00:00:00

565

148

Quinta

2019-08-01 00:00:00

555

147

Sexta

2019-08-02 00:00:00

545

146

Sexta

2019-08-02 00:00:00

535

145

Sábado

2019-08-03 00:00:00

525

 

Formatar DATA para ( dd/mm/aaaa)

Iremos usar a função convert . Sintaxe  convert (tipo de dados , coluna da tabela, código do formato).

Código do formato é o 103 para formatar DATA para ( dd/mm/aaaa) no formato brasileiro

Exemplo: convert( nvarchar(10), data_venda , 103 )


select

cod_venda,

dia_semana = 

case

  when datepart(weekday , data_venda) = 1 then ‘Domingo’

  when datepart(weekday , data_venda) = 2 then ‘Segunda’

  when datepart(weekday , data_venda) = 3 then ‘Terça’

  when datepart(weekday ,data_venda) = 4 then ‘Quarta’

  when datepart(weekday ,data_venda) = 5 then ‘Quinta’

  when datepart(weekday ,data_venda) = 6 then ‘Sexta’

  when datepart(weekday ,data_venda) = 7 then ‘Sábado’ end,

convert(nvarchar(10),  data_Venda , 103) as data_vendaBR ,   /* DATA para (DD/MM/AAAA) no formato brasileiro */  

valor

from bd_vendas.dbo.tab_venda

order by data_venda


Resultado:

cod_venda

dia_Semana

data_vendaBR

valor

150

Quarta

31/07/2019

575

149

Quinta

01/08/2019

565

148

Quinta

01/08/2019

555

147

Sexta

02/08/2019

545

146

Sexta

02/08/2019

535

145

Sábado

03/08/2019

525

 

Espero ter ajudado.

Abraços. Adilson Paranhos

Sobre Adilson Paranhos 4 Artigos
Formado em Analise e Desenvolvimento de Sistemas, experiência há mais de 10 anos. Amo aprender, ensinar, compartilhar e simplificar coisas... Linguagem T-SQL, consultas básicas e avançadas, filtros, agrupamentos, junções, funções, views, funções de sistemas

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será publicado.


*