2

我有一个表,它有一个日期列和根据日期的值。通常,如果我想选择两个日期之间的数据,我们使用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.

所以这给了我每周的价值观。我怎样才能做到这一点?

4

2 回答 2

3

试试这个:

您可以将group byMIN()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])


点击这里进行演示

编辑1:

根据您的评论,如果您只想从一周中检索一天。根据您的示例,这里是星期一。所以我使用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


演示2

于 2012-11-07T06:53:02.340 回答
0

我认为 datepart 功能可以帮助你。 Datepart 函数 MSDN

于 2012-11-07T06:53:22.100 回答