从mysql表中删除日期字段未来的所有记录

pas*_*tgt 1 php mysql sql date date-math

我想删除未来提交字段的数据库中的每一行.日期以这种方式存储:

2013年9月10日

所以,在这个例子中我想删除这条记录,因为它已经过期了.这就是我所在的地方:

$wpdb->query("DELETE FROM `$table_name` WHERE `Submission` < NOW()");
Run Code Online (Sandbox Code Playgroud)

看起来很好,但是这个查询会从表中删除所有内容,而不仅仅是过去的行.

Joh*_*nde 5

该日期不是有效的日期时间.这是一个字符串.您需要使用STR_TO_DATE()它来进行日期数学之前将其转换为日期.

DELETE FROM `$table_name` WHERE STR_TO_DATE(`Submission`, '%m/%d/%Y') < NOW()
Run Code Online (Sandbox Code Playgroud)