PHP/MySQL长日期格式查询

PHP/MySQL长日期格式查询,php,mysql,sql,date,Php,Mysql,Sql,Date,我有一个PHP导入任务,导入大约130000行的课堂出勤数据,日期字段采用DD-LM-YYYY格式,例如2013年9月16日 我执行一项任务,将日期字段的格式更新为YYYY-MM-DD,然后删除任何大于当前日期的记录: $todaysdate = date("Y-m-d"); $sql = "DELETE from tbl_data_attendance WHERE date > '$todaysdate'"; if(!mysql_query($sql)){die('Error: ' .

我有一个PHP导入任务,导入大约130000行的课堂出勤数据,日期字段采用
DD-LM-YYYY
格式,例如2013年9月16日

我执行一项任务,将日期字段的格式更新为
YYYY-MM-DD
,然后删除任何大于当前日期的记录:

$todaysdate =  date("Y-m-d");
$sql = "DELETE from tbl_data_attendance WHERE date > '$todaysdate'"; if(!mysql_query($sql)){die('Error: ' . mysql_error());}
在日期更新之前,我可以如何删除未来的记录?
例如,删除>2013年9月16日。
这样可以避免在更新最终只会被删除的行时浪费时间

提前谢谢

更多信息:

CSV文件结构和示例数据: “Adno”,“Mark”,“Date”,“Class”,“Subject”,“Teacher”,“Room”,“Recorded By”

“123456”、“Y”、“2013年9月17日”、“13A/Hi3”、“历史”、“John Smith先生”、“X6”

要将CSV文件加载到表中,我将使用以下方法:

$importquery = mysql_query('LOAD DATA LOCAL INFILE "'.$today.' - Report - Attendance Data.csv" INTO TABLE tbl_data_attendance FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY """" IGNORE 1 LINES')or die(mysql_error());

我想解决的问题是,在日期格式仍设置为“2012年9月17日”的情况下,是否可以删除任何大于今天的记录,而不是将日期字段更新为2013-09-17,然后运行上面显示的删除查询。

进行转换时,检查日期是否在未来。如果是的话,就不要把它放在数据库中。现在还不清楚你是否已经在数据库中有了这些记录,或者你还在导入它们。对于后者,使用提取真实日期非常简单。我认为您需要了解before insert/before update触发器()。这些是如何在MySQL中实现约束的。记录已经加载到数据库中,使用LOAD DATA LOCAL Infle导入12mb考勤CSV报告。。。我要做的是在执行日期格式更新之前删除任何大于当前日期的记录。例如:导入运行、加载130000行、删除>2013年9月16日、减少到6000行数据,然后将日期格式更新为2013-09-16、2013-09-15等。
delete from tbl_data_attention WHERE date>NOW()