La tabla de base de datos MySQL tbl_mgm_test tiene un campo rec_upd_ts (tiempo de actualización del registro), el tipo de datos es marca de tiempo, la restricción no nula es NOT NULL y el valor predeterminado es DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP.
Como el título, ¿cómo consultar los datos actualizados en 3 horas? La declaración SQL es la siguiente.
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);
Nota: La siguiente oración no puede encontrar con precisión los datos dentro de las 3 horas a partir de la hora actual, pero solo encuentra los datos dentro de las 3 horas posteriores a la unidad de tiempo hora y la hora actual. Los datos consultados incluyen datos dentro de las 3 horas y más allá pero menos de 4 horas de datos (por ejemplo, la hora actual es 2020-09-21 10:58:20, la oración a continuación no puede encontrar con precisión los datos después del 2020-09-21 07:58:20, los datos encontrados Datos después del 21-09-2020 06:58:20).
SELECT * FROM tbl_mgm_test WHERE TIMESTAMPDIFF(HOUR , rec_upd_ts, NOW()) <= 3;