【问题标题】:MySQL select datetime where minute matchesMySQL选择分钟匹配的日期时间
【发布时间】: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 绝对有效,谢谢!

标签: mysql datetime select


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多