T-SQL使用日历周计算

时间:2013-03-07 09:30:56

标签: sql tsql

我有一个T-SQL问题 - 我正在使用SQL-Server 2012:

我有一个varchar 日历周列(1-52)。在我的where子句中,我只想选择从当前年度的当前日历周返回的最后 6周。我还有一个年份varchar列,其值为“2011”,“2012”和“2013”​​。

但现在我正在努力为where子句设置表达式。

或者我需要一个Having子句来完成这项工作吗?

我试过这样的话:

Having Calendarweek BETWEEN max(Calendarweek)-6 AND max(Calendarweek) AND Year=2013

但它会返回所有周。

希望你能帮我解决这个问题。 谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个

where Year ='2013'
and CAST(Calendarweek AS INT) >= datepart(week,getdate())-6