【问题标题】:Importing a CSV to MySQL with different date format以不同的日期格式将 CSV 导入 MySQL
【发布时间】:2011-11-17 06:36:54
【问题描述】:

我正在将我的第一个 CSV 导入 MySQL,并注意到 CSV 中的日期格式为 31-Jan-2011。如何将其转换为 2011-01-31 以便将其放入 DATE 数据类型中?首先想到的是让 PHP 进行转换,然后将其插入到第二个表中,但我猜那是……不对。

【问题讨论】:

标签: mysql csv insert


【解决方案1】:

您可以在从 CSV 文件导入数据时替换格式,例如 -

LOAD DATA INFILE 'file_name.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(id, column2, column3, @date_time_variable) -- read one of the field to variable
SET date_time_column = STR_TO_DATE(@date_time_variable, '%d-%b-%Y'); -- format this date-time variable

它将像“2011 年 1 月 31 日”这样的字符串格式化为正确的 DATETIME 数据类型。

更多信息在这里 - LOAD DATA INFILE Syntax

【讨论】:

    【解决方案2】:
    mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d');
    +------------------------------------------------+
    | DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d') |
    +------------------------------------------------+
    | 2009-10-04                                     | 
    +------------------------------------------------+
    1 row in set (0.00 sec)
    

    【讨论】:

      【解决方案3】:

      如果文件不是太大,请将 CSV 加载到 Excel 中并使用那里的格式化命令来更改日期表示。

      【讨论】:

      • 您的回答对 SQL 问题并没有真正的帮助。此外,Excel 也不是很容易嵌入到批处理过程中。
      • 这对我有用,只需将 excel 中列的日期格式更改为“yyyy-mm-dd”,保存为 csv 并导入。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 2012-12-31
      • 1970-01-01
      • 2017-12-17
      • 2019-06-12
      • 1970-01-01
      相关资源
      最近更新 更多