【问题标题】:Format a csv date column using mysql load data in file使用 mysql 在文件中加载数据格式化 csv 日期列
【发布时间】:2013-10-09 12:24:57
【问题描述】:

我正在使用在文件查询中加载数据将 csv 插入表中。我必须在 csv 中格式化日期列,

LOAD DATA INFILE '/invoices/invoice1381301986.csv' INTO TABLE invoice_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (`code`,@var1)  set datefield=STR_TO_DATE(@var1, '%m/%d/%Y');

我可以使用上述查询格式化日期。

但问题是,我的 csv 日期列有不同的格式。可能的格式是“m/d/Y”、“m-d-Y”、“m/d/y”、“m-d-y”、“Y-m-d”、“Y/m/d”。

所以我的查询应该根据 csv 中的日期格式,这样我就可以修改我的查询,例如,

datefield=STR_TO_DATE(@var1, '%m/%d/%Y')

datefield=STR_TO_DATE(@var1, '%m-%d-%Y')..

如何读取 csv 日期字段的格式?

【问题讨论】:

    标签: mysql csv date-format date-formatting


    【解决方案1】:

    你需要使用CASE

    LOAD DATA INFILE '/invoices/invoice1381301986.csv' 
        INTO TABLE invoice_table 
        FIELDS TERMINATED BY ',' 
        ENCLOSED BY '"' 
        LINES TERMINATED BY '\n' 
        (`code`,@var1)  
        SET datefield= (
            CASE
                WHEN @var1 REGEXP '[0-9]{2}/[0-9]{2}/[0-9]{4}' THEN STR_TO_DATE(@var1,'%m/%d/%Y')
                ...
            END
        )
    

    【讨论】:

      猜你喜欢
      • 2019-06-24
      • 1970-01-01
      • 2016-04-12
      • 2023-03-29
      • 2017-12-17
      • 2023-03-15
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多