Php MySQL删除早于当前日期的行
我正在尝试删除数据库中开始日期早于当前日期的事件 我使用了NOW语句,它删除了表中的所有内容 数据库每天都会更新事件,我想删除已通过的事件 以下是我的sql语句示例:Php MySQL删除早于当前日期的行,php,mysql,Php,Mysql,我正在尝试删除数据库中开始日期早于当前日期的事件 我使用了NOW语句,它删除了表中的所有内容 数据库每天都会更新事件,我想删除已通过的事件 以下是我的sql语句示例: mysql_query("DELETE FROM Detroit WHERE Detroit.startDate < CURDATE()"); mysql\u查询(“删除底特律WHERE Detroit.startDate
mysql_query("DELETE FROM Detroit WHERE Detroit.startDate < CURDATE()");
mysql\u查询(“删除底特律WHERE Detroit.startDate
startDate是数据库中存储所有日期信息的列的名称
日期显示为2014年4月25日星期五19:00:00。当我在语句中使用CURDATE或NOW date选项时,整个表将被删除。如何删除日期早于当前日期的行?如果使用UNIX时间戳(1970年1月1日后的秒数,此格式始终使用UTC),则可以使用以下代码:
mysql_query("DELETE FROM Detroit WHERE Detroit.startDate < ".time());
mysql_查询(“从Detroit WHERE Detroit.startDate<”.time()删除);
如果您正在使用另一种格式,请告诉我,我将生成另一个代码段。请尝试此代码,并告诉我其结果。请:
mysql_query("DELETE FROM Detroit WHERE DATEDIFF(CURDATE(),startDate) > 0");
我怀疑您的
startDate
列不是datetime字段,而是varchar
此查询应适用于以下情况:
DELETE FROM Detroit
WHERE STR_TO_DATE(startDate, '%a, %e %b %Y') < CURDATE()
然后,您可以使用日期和时间函数删除所需的行:
DELETE FROM Detroit WHERE startDatedt < CURDATE()
从底特律删除,其中startDatedt
请看一下这里。那么您得到的错误是什么?请您补充一下您的问题。表中的
startDate
列的数据类型是什么。另外,您给出的查询有什么问题?例如,您有一个名为detroit的表?令人难以置信的是。从Detroit where DATE(Detroit.startDate)DELETE FROM Detroit WHERE startDatedt < CURDATE()