PHP删除超过3天的MySQL记录

时间:2016-04-03 08:44:53

标签: php mysql date

我在每个页面的顶部都有以下内容,因此当任何人加载网站时,PHP会删除特定数据库表中超过3天的任何记录。

$conn = getConnected("oversizeBoard");
mysqli_query($conn, "DELETE FROM postedLoads WHERE date < DATE_SUB(DATE('m-d-Y'), INTERVAL 3 DAY");

问题是没有被删除。

我的日期列的数据类型是varchar(20),当我在MySQL中插入日期时,它是使用date("m-d-Y")输入的。我的日期字段的名称是date。所以看起来上面的查询是正确的,但我做错了什么,我不确定是什么,因为我看过的每个例子基本上看起来都是一样的,除了他们使用now()代替{ {1}}但我使用的是特定日期格式,因此我无法在查询中使用date()

我做错了什么?

我甚至尝试将它放入一个函数中:

now()

2 个答案:

答案 0 :(得分:2)

尝试先通过计算提供日期,然后在查询中使用它,如下所示

$date = date("m-d-Y", strtotime('-3 day'));
$conn = getConnected("oversizeBoard");
mysqli_query($conn, "DELETE FROM postedLoads WHERE date < '".$date."');

它可能对你有所帮助。如果需要任何其他解决方案或帮助,请在此处询问。

答案 1 :(得分:0)

使用MySQL函数TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2);

函数计算两个日期之间的差异,并根据传递的单位参数返回输出。

试试这个:

DELETE FROM postedLoads WHERE TIMESTAMPDIFF('DAY',date,now())<3;

有关功能的详细信息:http://www.w3resource.com/mysql/date-and-time-functions/mysql-timestampdiff-function.php

相关问题