SQL时间戳间隔减去7天

时间:2014-09-05 11:44:12

标签: 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'

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

来自之间声明的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()