tsql - SQL Server - Finding the first day of the week -
i've been looking around chunk of code find first day of current week, , everywhere see this:
dateadd(wk, datediff(wk,0,getdate()),0)
every place says code i'm looking for.
the problem piece of code if run sunday chooses following monday.
if run:
select getdate() , dateadd(wk, datediff(wk,0,getdate()),0)
results today (tuesday):
2013-05-14 09:36:39.650................2013-05-13 00:00:00.000
this correct, chooses monday 13th.
if run:
select getdate()-1 , dateadd(wk, datediff(wk,0,getdate()-1),0)
results yesterday (monday):
2013-05-13 09:38:57.950................2013-05-13 00:00:00.000
this correct, chooses monday 13th.
if run:
select getdate()-2 , dateadd(wk, datediff(wk,0,getdate()-2),0)
results 12th (sunday):
2013-05-12 09:40:14.817................2013-05-13 00:00:00.000
this not correct, chooses monday 13th when should choose previous monday, 6th.
can illuminate me what's going in here? find hard believe no 1 has pointed out doesn't work, i'm wondering i'm missing.
try 1 -
set datefirst 1 declare @date datetime select @date = getdate() select cast(dateadd(day, 1 - datepart(weekday, @date), @date) date) select cast(@date - 2 date), cast(dateadd(wk, datediff(wk, 0, @date-2), 0) date)
results:
---------- ---------- 2013-05-12 2013-05-13
Comments
Post a Comment