sql server - Last working day for n Months ago SQL -


i have below sql query selects date of end of 3months ago. how can alter select last working day 3 months ago?

(select dateadd(d,-1,dateadd(mm, datediff(m,0,getdate())-3,0))) 

for mssql. if "last working day" mean saturday , sunday, can try following query.
in mssql number of day in week, depends value of @@datefirst (you can set set datefirst n, n=1, ..., 7).
eg. if @@datefirst=7 first day of week sunday, datepart(dw, getdate()) return 1 today sunday. query try give "last working day" apart @@datefirst value.

select dateadd(d, - case when datepart(dw,sp)+@@datefirst in (7,8) datepart(dw,sp) + @@datefirst-6  else 0 end,sp) nd             (         select dateadd(d,-1,dateadd(mm,                 datediff(m,0,getdate())             -3,0)) sp ) 

output

2017-04-28 00:00:00.000 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -