我有一个在我的数据库上每小时运行一次的事件。它调用的程序可以删除早于一天的照片表中的行。这是查询:
DELETE FROM Photos WHERE created_at < (NOW() - INTERVAL 1 DAY);
然而,今天早上我注意到我测试的行已经超过5小时被删除了。我住在休斯顿,所以我在中央时间。照片应该在中央时间上午11:23删除,所以我猜这是一个时区问题。如果它是如何在日期上添加时区的话,如果它不是什么问题呢?
答案 0 :(得分:1)
如果您的dB与您所在的时间不同,则可能是时区问题。
每小时而不是每天都要清理数据是否必要。
使用日期部分功能可以获得更多的乐趣。这样你就完全摆脱了时间戳
所以
Delete from photos where created_at < ((date(now()) - INTERVAL 1 DAY );