MySQL Query仅查找24小时的数据

时间:2012-01-24 14:01:59

标签: mysql

我正在尝试仅检索24小时内的数据。

我的SQL是:

SELECT * FROM aprstrack WHERE callsignSSID = 'VE9SC-9' AND
reporttime BETWEEN SYSDATE() - INTERVAL 1 DAY AND SYSDATE()) ORDER BY
reporttime ASC

有人能告诉我哪里出错了。提前致谢。

3 个答案:

答案 0 :(得分:2)

你有一个不平衡的支架,

SELECT * FROM aprstrack WHERE callsignSSID = 'VE9SC-9' AND
reporttime BETWEEN SYSDATE() - INTERVAL 1 DAY AND SYSDATE() ORDER BY
reporttime ASC

答案 1 :(得分:1)

在标准SQL中,您需要引用该上下文中的数字。

reporttime BETWEEN SYSDATE() - INTERVAL '1' DAY AND ...

MySQL文档表明你需要在MySQL中这样做。我会怀疑并且测试。 (我没有在这里运行MySQL服务器实例,或者我会为你测试它。)

你可能想要NOW()而不是SYSDATE()。 SYSDATE() isn't deterministic在单个SQL语句中,因此对SYSDATE()的两次调用可能(但不太可能)返回不同的值。

答案 2 :(得分:1)

SYSDATE())

中移除额外的括号
SELECT * 
FROM aprstrack 
WHERE callsignSSID = 'VE9SC-9' 
        AND
reporttime BETWEEN (SYSDATE() - INTERVAL 1 DAY) AND SYSDATE() 
ORDER BY reporttime ASC