我有一个我导入mysql的csv文件,csv文件中有一个日期字段,格式如下:30.09.2011
我有一个从数据库中提取数据的php页面,我想按日期字段对其进行排序。目前,它将日期视为一个字符串并按此顺序排序。
30.09.2011 2012年6月2日 2011年7月10日 2008年9月12日
谢谢!
答案 0 :(得分:2)
不要使用PHP。在源头纠正它。也就是说,在数据类型为DATE
的MySQL表中添加一个新列。
然后,您可以使用STR_TO_DATE()
导入后填充它。
UPDATE your_table SET new_date_column = STR_TO_DATE(old_str_column,'%d.%m.%Y');
这样做将使得将来更容易进行排序,计算,格式化等。
答案 1 :(得分:0)
如果您定期提取CSV中的数据,为什么不修改提取SQL以使日期以正确的格式出现,以便MySQL将其吸入?
例如,如果您从oracle中提取,则可以更改
select
yourDateColumn
from
yourTable
到
select
to_char(yourDateColumn, 'YYYY-MM-DD') as yourMySQLDateColumn
from
yourTable
然后你可以直接导入到Mysql中的日期数据类型,但是你也可以跳过整个PHP上传并直接进入MySQL Load Data Infile命令,这将比PHP将要做的更快。