2

我写了这个查询,它给了我当天的记录

SELECT EnquiryOwner,Count(uid) 
FROM EnquiryMaster 
WHERE orgid = '" + orgid + "' 
    AND (DAY(date) = DAY(GETDATE()) 
    AND MONTH(date) = MONTH(GETDATE()) 
    AND YEAR(date) = YEAR(GETDATE())) 
GROUP BY EnquiryOwner

我想选择一周的记录。如果我在星期二访问,我想要从前一个星期二到本星期二的记录

4

3 回答 3

3

您可以使用 dateadd 来确定一周前的日期。

比如喜欢

DAY(date)   = DATEADD(day,   -7, GETDATE()) AND    
MONTH(date) = DATEADD(month, -7, GETDATE()) AND
YEAR(date)  = DATEADD(year,  -7, GETDATE()) 

或者

... WHERE date between DATEADD(DAY,-7,GETDATE()) and GETDATE()

另请参阅日期和时间函数列表。

于 2013-04-16T04:45:54.243 回答
2

如果你不在乎时间:

WHERE date between DATE_SUB(DATE(NOW()),INTERVAL 7 DAY) and DATE(NOW())

如果您确实关心时间:

WHERE date between DATE_SUB(NOW(),INTERVAL 7 DAY) and NOW()

这是MYSQL。对于 SQL Server,它看起来像这样:

WHERE date between DATEADD(DAY,-7,GETDATE()) and GETDATE()

(我没有安装sql server,所以没有测试。)

于 2013-04-16T04:51:24.857 回答
0

如果你想在一周前跳跃,你只需要使用 dateadd 比较一个日期减去 7。

SELECT EnquiryOwner,Count(uid) 
FROM EnquiryMaster 
WHERE orgid = '" + orgid + "' 
    AND date = DATEADD(date, -7, GETDATE()) 
GROUP BY EnquiryOwner
于 2013-04-16T04:53:49.997 回答