MySQL 删除早于应有的行

MySQL deleting row Earlier than its should

我的数据库中有一个每小时运行一次的事件。它调用一个程序,从我的照片 table 中删除超过一天的行。这是查询:

DELETE FROM Photos WHERE created_at < (NOW() - INTERVAL 1 DAY);

但是,今天早上我注意到我正在测试的行被删除了 5 个多小时,而不是它应该被删除的时间。我住在休斯顿,所以我在中央时间。照片应该在 11:23 AM Central 删除,所以我猜这是时区问题。如果是,如何在日期上添加时区,如果不是,可能是什么问题?

如果你的 dB 不在你所在的同一个时区,可能是时区问题。

是否必须每小时而不是每天清理一次数据。

您可能会从使用日期部分功能中获得更多乐趣,让您度过一天。这样你就可以完全摆脱时间戳

所以

Delete from photos where created_at < ((date(now()) - INTERVAL 1 DAY );