我有一个表格,其中有一个日期列和根据日期的值。通常,如果我想选择两个日期之间的数据,我们使用BETWEEN
语法,但它会在我给出的那两个值之间带来每一天是否有可能改变它,所以它带来了我给出的时间间隔的日期?例如,如果做一个简单的
SELECT * FROM METABLE WHERE DATE BETWEEN '2012-06-11' AND '2012-07-11'
它应该给我带来日期:
2012-06-11 myValue Stuff
2012-06-12 myValue Stuff
.
.
.
2012-07-11 myValue Stuff.
是否可以将其更改为,
2012-06-11 myValue Stuff
2012-06-18 myValue Stuff
2012-06-25 myValue Stuff
.
.
.
Until my end date.
所以这给了我每周的价值观。 我怎样才能做到这一点?
答案 0 :(得分:3)
试试这个:
你可以使用分组与 MIN()和 SUM()功能
SELECT min(date),sum(col1),sum(col2)
FROM METABLE
WHERE [DATE] BETWEEN '2012-06-11' AND '2012-07-11'
group by datepart(ww,[DATE])
<强> EDIT1:强>
根据您的评论,如果您只想从一周内检索一天。在这里,根据你的例子,它的星期一。所以我使用 set datefirst 1 将其设置为星期一
set datefirst 1
select t.*
from METABLE t
join
(SELECT min([date]) as dt
FROM METABLE
group by datepart(ww,[date]))a
on t.[date]=a.dt
set datefirst 7
答案 1 :(得分:0)
我认为datepart功能可以帮到你。 Datepart function MSDN