怎么用周推日期?

来源:百度知道 编辑:UC知道 时间:2024/06/24 23:07:08
比如,知道日期,在SQL可以用datename函数算出是第几周,星期几。
那反过来,怎么可能算出今年的第十八周的星期六是几月几日?

按你的要求语句这么写
select dateadd(ww,18-1,'20080101')-datepart(dw ,'20080101')+7
解释一下
2008年1月1日肯定是今年的第一个周,dateadd(ww,18-1,'20080101')肯定在今年的第18周,18-1是为了方便看代码,直接写成17也可以。因为我们不知道2008年1月1日在周里是第几天,所以要在后边减去datepart(dw ,'20080101'),datepart(dw ,'20080101')是查询1月1日是该周的第几天,相减以后的值就是第18周的第一天的前一天的日期,也就是第17周的最后一天,默认每周的第一天是周日,最后一天是周六,所以最后加上7天,就是18周的周六的日期了。
如果要得到18周的周五是几号语句就是
select dateadd(ww,18-1,'20080101')-datepart(dw ,'20080101')+6