MySQL选择分钟匹配的日期时间
Posted
技术标签:
【中文标题】MySQL选择分钟匹配的日期时间【英文标题】:MySQL select datetime where minute matches 【发布时间】:2017-09-23 17:47:58 【问题描述】:我有一个包含时间戳列的表。对于给定的日期时间,我希望返回与给定分钟匹配的所有记录,无论它是在给定秒之前还是之后。
换句话说,我有:
2017-04-01 09:41:23
2017-04-02 09:41:02
2017-04-02 09:41:27
2017-04-02 09:42:49
给予:
2017-04-02 09:41:30
我想回来:
2017-04-02 09:41:02
2017-04-02 09:41:27
感谢您的帮助
【问题讨论】:
到目前为止你尝试了什么? SELECT * FROM myTable WHERE updated BETWEEN $time - INTERVAL 1 MINUTE ORDER BY updated DESC 使用 DATE_FORMAT 并省略秒 SELECT * FROM myTable where DATE_FORMAT(updated,'%Y-%m-%d %H:%i') =DATE_FORMAT('2017-04-02 09: 41:30', '%Y-%m-%d %H:%i') @JYoThI 绝对有效,谢谢! 【参考方案1】:您可以精确到分钟:
select t.*
from t
where date_format(tscol, '%Y-%m-%d %H:%i') = date_format('2017-04-02 09:41:30', '%Y-%m-%d %H:%i');
或者,取决于常量的类型:
select t.*
from t
where date_format(tscol, '%Y-%m-%d %H:%i') = left('2017-04-02 09:41:30', 16);
【讨论】:
以上是关于MySQL选择分钟匹配的日期时间的主要内容,如果未能解决你的问题,请参考以下文章