gpt4 book ai didi

php - 删除超过一个月/30 天的记录

转载 作者:行者123 更新时间:2023-11-29 07:46:58 25 4
gpt4 key购买 nike

我的数据存储在mysql数据库中。我正在尝试删除所有超过 30 天的记录。所有记录都有一个指定记录created_date的字段。 created_date 的格式为 Mon, 08 Dec 2014 00:33:13 -0500。运行删除查询时,所有记录都将被删除。即使记录不超过 30 天。我不确定这是否是由于 created_date 字段中的日期格式所致。如何删除超过 30 天的记录?

try {
$days = strtotime('1 month');
$delete = $pdo->prepare("DELETE FROM archive WHERE created_date > :days");
return $delete->execute(array('days' => $days));
}catch (Exception $e) {
echo "Failed: " . $e->getMessage();
}

表架构

+------------+-----------+-----+---------------+---------------------------------+
| First Name | Last Name | Age | Date of Birth | created_date |
+------------+-----------+-----+---------------+---------------------------------+
| Lionel | Messi | 27 | 6/24/1987 | Mon, 08 Dec 2014 00:33:13 -0500 |
| Michael | Jordan | 51 | 2/17/1963 | Tue, 15 Nov 2014 00:33:13 -0500 |
| Lebron | James | 30 | 12/30/1984 | Fri, 02 Oct 2014 00:33:13 -0500 |
+------------+-----------+-----+---------------+---------------------------------+

最佳答案

DELETE FROM archive
WHERE STR_TO_DATE(SUBSTR(created_date, 0, 25), '%a, %d %b %Y %H:%i:%S') <
DATE_SUB(NOW(), INTERVAL 30 DAY);

然后,您可以删除用于计算日期范围的 PHP 代码,并让 MySQL 为您处理。

如果您可以控制数据库结构,则将日期存储在 DATETIME 字段中会比在每个数据库行上调用 STR_TO_DATE 更有效。

关于php - 删除超过一个月/30 天的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com