首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DATETIME formate上的MySQL BETWEEN查询

问DATETIME formate上的MySQL BETWEEN查询
EN

Stack Overflow用户
提问于 2018-09-03 14:07:58
回答 2查看 55关注 0票数 0

我正在从MySQL数据库中读取数据。通过以下查询,我成功地读取了时间等于给定时间的数据(这将从alldata表中返回有效数据)。

代码语言:javascript
复制
SELECT *
FROM alldata
WHERE Time = DATE_FORMAT(NOW()- INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s')
LIMIT 0,3;

现在,我想获取特定时间范围内的数据,但我的以下查询不起作用

代码语言:javascript
复制
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%确定在给定的时间范围内存在数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-03 15:32:47

您已经替换了参数之间的时间顺序:

从之前到之后,NOW() -1总是在NOW() -5之后

也许这会起作用

代码语言:javascript
复制
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;
票数 1
EN

Stack Overflow用户

发布于 2018-09-03 14:12:39

括号应该如下所示(未经过测试,但看起来很有可能):

代码语言:javascript
复制
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;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52143982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档