SQL时间戳间隔减去7天
我想从我的数据库选择过去7天SQL时间戳间隔减去7天
到目前为止,我有以下几点:
SELECT timestamp, COUNT(is_complete)
FROM module_activity
WHERE user_id = 30
AND timestamp BETWEEN NOW()
AND DATE_ADD(NOW(), INTERVAL -7 DAY)
GROUP BY timestamp ORDER BY timestamp ASC
但是这给了我没有结果。
我的表看起来像这样:
# id, user_id, module_id, is_complete, timestamp
'1', '30', '5', '1', '2014-08-31 00:00:00'
'2', '30', '6', '1', '2014-09-01 00:00:00'
'3', '30', '7', '1', '2014-09-02 00:00:00'
'4', '30', '8', '1', '2014-09-03 00:00:00'
'5', '30', '9', '1', '2014-09-04 00:00:00'
'6', '30', '10', '1', '2014-09-05 00:00:00'
谁能告诉我什么,我做错了什么?
从MSSQL文档上的发言之间:
test_expression BETWEEN begin_expression AND end_expression
的第一个值(与begin_expression)被认为是在较低的值,并且第二值(end_expression具有)被认为是上限值。例如。 col BETWEEN 1 AND 3
您的陈述的上下边界是错误的,例如,你有col BETWEEN 3 AND 1
。这与编写WHERE col >= 3 AND col <= 1
不可能是真实的相同,这就是为什么你没有看到任何行。
您需要交换价值较低的顺序(即现在 - 7天)和较高的值(即现在)
timestamp BETWEEN DATE_ADD(NOW(), INTERVAL -7 DAY) AND NOW()
*假设*这是用于SQL Server ....问题不明确...... – 2014-09-05 12:04:34
这个行为是由SQL标准定义的,所以对于所有符合数据库引擎的应该是相同的。 – 2014-09-05 12:07:19
尽管如果DBMS支持它,您可以使用'x BETWEEN SYMMETRIC y AND z'使句子顺序不敏感。默认是假定不对称。 – 2014-09-05 12:14:05
您正在使用哪个数据库管理系统? – 2014-09-05 11:57:07