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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值