1

我要定位的表中的字段是 date_sent DATE

这是 CSV 的一部分和以下导入查询。为什么将日期字段设置为 NULL?

1,"1/21/2013","0",1
2,"2/27/2013","0",1

这是 SQL

   LOAD DATA LOCAL INFILE 'C:/Users/Me/CSV.csv'
     INTO TABLE Collections
     FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\r\n'
(`id`, @DATE_STR, `col`, `sid`)
SET `date_sent` = STR_TO_DATE(@DATE_STR, '%m/%d/%Y')
4

2 回答 2

2

来自MySQL 的开发页面

%m        Month, numeric (00..12)
%d        Day of the month, numeric (00..31)

您需要%c改用(可能%e也是)。

%c        Month, numeric (0..12)
%e        Day of the month, numeric (0..31)
于 2013-03-18T16:54:45.227 回答
1

尝试使用这种日期格式:

STR_TO_DATE(@DATE_STR, '%c/%e/%Y')
  • %c是月份,数字,0..12%m是格式中的月份00..12
  • %e是月份中的日期,数字,0..31%d是格式中的日期00..31

请参阅DATE_FORMAT的文档。

于 2013-03-18T16:54:59.670 回答