sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo obtener datos de la semana actual solo en el servidor SQL?

Hazlo así:

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()))

Explicación:

  • datepart(dw, getdate()) devolverá el número del día de la semana actual, del 1 al 7, comenzando con lo que haya especificado usando ESTABLECER FECHA PRIMERO .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) resta el número necesario de días para llegar al comienzo de la semana actual
  • CONVERT(date,getdate()) se utiliza para eliminar la parte de la hora de GETDATE(), porque desea que los datos comiencen a la medianoche.