我正在从MySQL数据库中读取数据。通过以下查询,我成功地读取了时间等于给定时间的数据(这将从alldata表中返回有效数据)。
SELECT *
FROM alldata
WHERE Time = DATE_FORMAT(NOW()- INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s')
LIMIT 0,3;现在,我想获取特定时间范围内的数据,但我的以下查询不起作用
SELECT *
FROM alldata
WHERE (Time BETWEEN DATE_FORMAT(NOW()- INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s') AND DATE_FORMAT(NOW()- INTERVAL 5 SECOND,'%Y-%m-%d %H:%i:%s' ))
LIMIT 0,3;如果您看到它与第一个查询中的方法相同。但它总是返回空集,而我100%确定在给定的时间范围内存在数据。
发布于 2018-09-03 15:32:47
您已经替换了参数之间的时间顺序:
从之前到之后,NOW() -1总是在NOW() -5之后
也许这会起作用
SELECT *
FROM alldata
WHERE (Time BETWEEN DATE_FORMAT(NOW()- INTERVAL 5 SECOND,'%Y-%m-%d %H:%i:%s') AND DATE_FORMAT(NOW()- INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s' ))
LIMIT 0,3;发布于 2018-09-03 14:12:39
括号应该如下所示(未经过测试,但看起来很有可能):
SELECT *
FROM alldata
WHERE Time
BETWEEN DATE_FORMAT(NOW() - INTERVAL 5 SECOND,'%Y-%m-%d %H:%i:%s')
AND DATE_FORMAT(NOW() - INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s')
LIMIT 0, 3;https://stackoverflow.com/questions/52143982
复制相似问题