MySQL - 选择日期时间列之前 1 小时的行

标签 mysql

我有这些行

id |      start_time      |
1  |  2018-06-15 02:00:00 |
2  |  2018-06-15 02:45:00 |
3  |  2018-06-15 03:45:00 |

我想选择 start_time 之前 1 小时的行。因此,如果时间是 2018-06-15 01:00:00 那么应该返回第一行。

我该怎么做?我在下面尝试过,但我不知道如何从 start_time 中减去 1 小时。

SELECT *
FROM table1
WHERE DATE_FORMAT(start_time, '%Y-%m-%d %H') <= DATE_FORMAT(NOW(), '%Y-%m-%d %H');

最佳答案

要减去小时数,请使用 date_sub 函数 对于你的情况

SELECT DATE_SUB(DATE_FORMAT(start_time, '%Y-%m-%d %H'), INTERVAL 1 HOUR)

关于MySQL - 选择日期时间列之前 1 小时的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50858621/

相关文章:

java 如何使用 JDBC 执行 SQL Dump 数据

mysql - SQL 查询 - 在小于或等于日期加入

php - SQL Select 在 phpmyAdmin 和 . PHP HTML

mysql - 如何将 UPDATE 查询与子查询相结合?

PHP PDO 取空

MySQL - 触发器 - 插入之前和使用 SK(自动增量)

mysql - 复合键中的 AUTO_INCRMENT

php - PHP 图片上传问题

php - Yii2中止请求和sql查询

mysql - Rails 4 ActiveRecord::Base.connection.execute to_json 错误地编码了 DateTime