我有一张表,每周三都会填充数据。所以我需要从上周三到最近发生的周三获取这些数据。
例如: 如果今天是星期四(06/06/2013),那么我需要从29/05/2013(即上个月的最后一个星期三,5 月)到05/06/2013(昨天)获取数据
我试过了
select dateadd(dd,datediff(dd,0,'GetDate()')/7 * 7 + 2,0)
给出 05/06/2013
select dateadd(wk,-1,datediff(dd,0,'GetDate()')/7 * 7 + 2)
给出29/05/2013
在代码中,dateadd(dd,datediff(dd,0,'GetDate()')/7 * 7
转到一周的第一天(在本例中为星期一),并通过添加 +2 给出星期三的日期。
问题除星期一外,代码工作正常。
例如:考虑下周一(即 10/06/2013),
它给出了从2013 年 5 月 6 日(昨天)到2013年 6 月 12 日(下周三)的结果,
而不是我需要 29/05/2013(即上周周三的上一个)到2013年 5 月 6日(昨天)
有任何想法吗?