Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

como obter dados da semana atual apenas no servidor SQL?


Faça isso deste modo:
SET DATEFIRST 1 -- Define beginning of week as Monday
SELECT [...]
AND WorkDate >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) 
AND WorkDate <  dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))

Explicação:
  • datepart(dw, getdate()) retornará o número do dia na semana atual, de 1 a 7, começando com o que você especificou usando DEFINIR DATAFIRST .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) subtrai o número necessário de dias para chegar ao início da semana atual
  • CONVERT(date,getdate()) é usado para remover a parte da hora de GETDATE(), porque você deseja que os dados comecem à meia-noite.