2012-07-20 175 views
6

Quiero obtener el último día (domingo) de la semana actual con cualquier marca de tiempo. Intenté seguir el guión, pero regresa el sábado como el último día en lugar del domingo, como esperaba.SQL: cómo obtener el domingo de la semana actual

Select DATEADD(DAY , 7-DATEPART(WEEKDAY,GETDATE()),GETDATE()) AS 'Last Day Of Week' 

Cualquier respuesta es bienvenida !!

+0

Así que quieres semana sea Lunes -> Domingo? El valor predeterminado en SQL Server es Domingo -> Sábado. –

+0

Consulte también http://weblogs.sqlteam.com/peterl/archive/2009/06/17/How-to-get-the-Nth-weekday-of-a-month.aspx – Madhivanan

+0

El sábado es el día 7, las semanas comienzan en domingos. – Gaspa79

Respuesta

11

Se trabajará si cambia la norma DATEFIRST desde el domingo (7) hasta el lunes (1):

SET DATEFIRST 1 

Select DATEADD(DAY , 7-DATEPART(WEEKDAY,GETDATE()),GETDATE()) AS 'Last Day Of Week' 
+0

¡Muchas gracias! – Echo

+0

+1 su respuesta es correcta. He borrado mi respuesta. No funcionará los domingos. Gracias –

0

Prefijo su comando con set datefirst 1

Cuestiones relacionadas