Php MySQL删除早于当前日期的行

Php MySQL删除早于当前日期的行,php,mysql,Php,Mysql,我正在尝试删除数据库中开始日期早于当前日期的事件 我使用了NOW语句,它删除了表中的所有内容 数据库每天都会更新事件,我想删除已通过的事件 以下是我的sql语句示例: mysql_query("DELETE FROM Detroit WHERE Detroit.startDate < CURDATE()"); mysql\u查询(“删除底特律WHERE Detroit.startDate

我正在尝试删除数据库中开始日期早于当前日期的事件

我使用了NOW语句,它删除了表中的所有内容

数据库每天都会更新事件,我想删除已通过的事件

以下是我的sql语句示例:

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)Suketu中删除。谢谢,但这并没有从表中删除任何内容。没有错误消息。你可以从这里运行它,但它不提供任何消息:我可以拥有你的skype帐户吗?!你死定了。我意识到该列是一个varchar列,并使用您的第二个选项创建了一个新列,并将其更改为timestamp,这是完美的。谢谢你的帮助,我明白了。谢谢你这么说。
DELETE FROM Detroit WHERE startDatedt < CURDATE()