【问题标题】:csv file import to mysql date formatcsv文件导入mysql日期格式
【发布时间】:2012-07-20 01:39:24
【问题描述】:

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

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

30.09.2011 2012 年 2 月 6 日 7.10.2011 9.12.2008

谢谢!

【问题讨论】:

    标签: php mysql date csv


    【解决方案1】:

    不要为此使用 PHP。从源头上纠正它。即在数据类型为DATE的MySQL表中新增一列。

    然后您可以在导入后使用STR_TO_DATE() 填充它。

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

    这样做将使将来的排序、计算、格式化等更容易。

    【讨论】:

    • 您应该通过单击右侧的复选标记标记最能解决您的问题的答案。欢迎使用 Stack Overflow。
    • 感谢您的回答。我用 '%m/%d/%y' 试过了,但无济于事。有什么原因这不起作用?
    【解决方案2】:

    如果您定期提取 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 2012-12-31
      • 2019-01-27
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多