php - 从 csv 加载数据本地 INFILE 日期格式

标签 php mysql load-data-infile

我一直在尝试将文件拉入表中,唯一遇到的问题是导入日期(当前采用 'MM/DD/YY' 格式)。无论我如何尝试,它们最终都会看起来像'0008-12-14'。该日期在 .csv 文件中为 8/12/14。我试过了

SET ShipDate = STR_TO_DATE(@ShipDate,'%Y%m%d')

但随后它将它们导入为NULL。表字段设置为DATE。代码如下:

$query = <<<eof
    LOAD DATA LOCAL INFILE 'file.csv'
     INTO TABLE HS_import
     FIELDS TERMINATED BY ','
     LINES TERMINATED BY '\n'
     IGNORE 1 LINES
    (AmountPaid,
ShipDate)
SET ShipDate = STR_TO_DATE(@ShipDate,'%Y%m%d')
eof;

最佳答案

您的 STR_TO_DATE 格式错误。它应该指定输入格式而不是输出格式:

SET ShipDate = STR_TO_DATE(@ShipDate,'%d%m%y')

所以整个事情应该看起来像

  LOAD DATA LOCAL INFILE 'file.csv'
  INTO TABLE HS_import
  FIELDS TERMINATED BY ','
  LINES TERMINATED BY '\n'
  IGNORE 1 LINES
  (AmountPaid, @ShipDate)
  SET ShipDate = STR_TO_DATE(@ShipDate,'%d%m%y')

关于php - 从 csv 加载数据本地 INFILE 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29042114/

相关文章:

mysql - 多次准备语句时的性能问题

sql - 一条Sql语句的帮助

java - 无法使用maven项目配置mysql hibernate

mysql - 将包含 html 代码的文本文件导入 mysql db - 特定列的合适方法

php - 使用特定要求重新排序数组

php - 从数据库中检索值并显示在工具提示中

java - 加载数据查询不适用于 INSERT/REPLACE 选项

mysql - LOAD DATA LOCAL INFILE 插入空白记录

使用 SQLite3 的 PHP PDO 错误

php - 将 XML 导入 MySQL,无法获取所有子标签