MySQL 如何查询更新时间在几小时之内的数据

  MySQL 数据库表 tbl_mgm_test 中有一个字段 rec_upd_ts(记录更新时间),数据类型为 timestamp,非空约束为 NOT NULL, 默认值为 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。

  如题,如何查询更新时间在 3 小时之内的数据?SQL 语句如下所示。

SELECT * FROM tbl_mgm_test WHERE rec_upd_ts >= DATE_SUB(NOW(), INTERVAL 3 HOUR);

SELECT * FROM tbl_mgm_test WHERE TIMESTAMPDIFF(SECOND , rec_upd_ts, NOW()) <= 3*60*60;

SELECT * FROM tbl_mgm_test WHERE rec_upd_ts >= DATE_ADD(NOW(),INTERVAL -3 HOUR);

  备注:如下语句,不能精确查出距离现在时间在 3 小时之内的数据,只能查出时间单位小时和现在的小时数相差在 3 以内的数据,查询的数据包括 3 小时以内的数据和超出 3 小时但是小于 4 小时的数据(如当前时间为 2020-09-21 10:58:20,下方语句,不能精确查出 2020-09-21 07:58:20 之后的数据,查出的数据为 2020-09-21 06:58:20 之后的数据)。

SELECT * FROM tbl_mgm_test WHERE TIMESTAMPDIFF(HOUR , rec_upd_ts, NOW()) <= 3;

猜你喜欢

转载自blog.csdn.net/piaoranyuji/article/details/108704274
今日推荐