Php 根据所选有效期,删除1个月或3个月后的行
我想删除数据库中的旧记录,该数据库存储来自HTML表单的条目,该表单由Php 根据所选有效期,删除1个月或3个月后的行,php,html,mysql,sql,Php,Html,Mysql,Sql,我想删除数据库中的旧记录,该数据库存储来自HTML表单的条目,该表单由 身份证 名字 电子邮件 输入日期(用户提交表单时记录的时间戳) 有效期(用户可以选择30天或90天作为有效期) 我想根据从输入日期中选择的有效期,使行过期并在30/90天后删除它 我发现了这个,但是如何修改它以满足我的需要呢 DELETE FROM myTable WHERE date_of_entry < DATEADD(MONTH, -1, GETDATE()) DELETE FROM myTable,其中项目的
DELETE FROM myTable WHERE date_of_entry < DATEADD(MONTH, -1, GETDATE())
DELETE FROM myTable,其中项目的日期
另外请注意,我使用的表单将值validity发送为30或90$duration=$\u POST['duration']代码>
这个检查应该由MySQL本身执行。我在MySQL中使用phpMyAdmin,您可以执行以下操作:
delete t from mytable t
where date_of_entry < curdate() - interval validity day;
从MyT表中删除t
其中,输入的日期
这假设validity
是数字30或90。在MySQL中,您可以执行以下操作:
delete t from mytable t
where date_of_entry < curdate() - interval validity day;
从MyT表中删除t
其中,输入的日期
这假设validity
是数字30或90。基本上,如果当前日期超过date\u条目
加上validity
天数,则必须删除过时行,方法如下:
now() > date_add(date_of_entry, interval validity day)
id |入境日期|有效期
-: | :------------------ | -------:
1 | 2018-03-11 18:16:43 | 30
1 | 2018-01-10 18:16:43 | 90
dbfiddle基本上,如果当前日期超过date\u of\u条目
加上有效期
天数,则必须以这种方式删除过时的行:
now() > date_add(date_of_entry, interval validity day)
id |入境日期|有效期
-: | :------------------ | -------:
1 | 2018-03-11 18:16:43 | 30
1 | 2018-01-10 18:16:43 | 90
dbfiddle从mytable中删除日期项<
日期(CURDATE(),有效期间隔*-1天);
从mytable中删除日期项<
日期(CURDATE(),有效期间隔*-1天);
您可以添加注释让我了解您为什么使用日期\加载项删除查询您可以添加注释让我了解您为什么使用日期\加载项删除查询吗query@McNets . . . 我猜你的意思是“为什么投否决票”。我也很好奇。@McNets。我猜你的意思是“为什么投否决票”。我也很好奇。
delete
from tbl
where now() > date_add(date_of_entry, interval validity day)
select * from tbl;
id | date_of_entry | validity
-: | :------------------ | -------:
1 | 2018-03-11 18:16:43 | 30
1 | 2018-01-10 18:16:43 | 90
DELETE FROM mytable WHERE date_of_entry <
DATE_ADD( CURDATE() ,INTERVAL validity*-1 DAY) ;