2

我有一个要导入 mysql 的 csv 文件,csv 文件中有一个日期字段,格式如下:30.09.2011

我有一个从数据库中提取数据的 php 页面,我想按日期字段对其进行排序。目前它将日期视为一个字符串并像这样排序..

30.09.2011 6.02.2012 7.10.2011 9.12.2008

谢谢!

4

2 回答 2

2

不要为此使用 PHP。从源头上纠正它。即在 MySQL 表中添加一个 datatype 的新列DATE

然后您可以在导入后使用STR_TO_DATE().

UPDATE your_table SET new_date_column = STR_TO_DATE(old_str_column,'%d.%m.%Y');

这样做将使排序、计算、格式化等在未来变得更容易。

于 2012-07-20T01:41:46.287 回答
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 执行的任何操作都快一个 STACK。

于 2012-07-20T01:51:01.767 回答