从超过1小时的数据库中删除记录不会删除所有记录

时间:2016-10-06 09:12:40

标签: mysql

我有简单的脚本,应该删除超过1小时的所有订单而不提供字符串。问题是今天(当前日期)超过1小时BUT的订单不会被删除。它删除了昨天的所有记录。这是我的查询

$select = "DELETE FROM orders              
           WHERE created_at < DATE_SUB( CURDATE( ) , INTERVAL 1 HOUR ) 
           AND tx = ''";

$conn->exec($select);

created_at位于timestamp,看起来像2016-10-06 08:33:14

我的订单为created_at - 2016-10-06 08:33:14,当前日期和时间为2016-10-06 12:10:23但未删除,但如果我将此订单的日期更改为2016-10-05 12:10:23,即昨天它被删除了。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

我相信curdate()只返回日期而非时间:http://www.w3schools.com/sql/func_curdate.asp

即。您实际上是在删除早于23:00的订单

更改为使用NOW()代替CURDATE()可能会有所帮助。