日期:2014-05-19  浏览次数:20525 次

如何获得上年同期的日期?类似于2007-4-8是星期日,对应2006-4-9
如题

------解决方案--------------------
2007-4-8是星期日,上年同期是什么意思,2006-4-9号也是星期日,2006-4-2也是星期日,为什么是2006-4-9,取最近的吗?
------解决方案--------------------
--我的测试通过,保证周次、星期都一致

declare @d varchar(10) --传递的日期字符串
declare @date datetime --@d的日期类型
declare @Result_Year varchar(4) --去年的年部分
declare @dw_pqs INT --周次
declare @wk_pqs int --星期

set @d= '2007-04-08 '
set @date =cast(@d as datetime)
set @Result_Year=cast(year(@date)-1 as varchar)


set datefirst 1
select @dw_pqs=datepart(dw,@date),@wk_pqs=datepart(wk,@date)-1 --获取周次、星期

select convert(varchar,dateadd(d,@wk_pqs*7+@dw_pqs,cast(@Result_Year+ '0101 ' as datetime)),23)