MySQL导入CSV转换日期格式

时间:2013-03-28 11:16:17

标签: mysql date csv

我正在将数据从csv导入MySQL表。我需要将日期格式从String转换为Date。 从开始格式到结局格式:

Mon Feb 04 00:00:00 UTC 2011  ---> 2011-02-04 00:00:00

我成功完成了它:

select str_to_date('Mon Feb 04 00:00:00 UTC 2011', '%a %b %d %k:%i:%s UTC %Y');

现在我正在编写脚本以执行csv的所有导入,有2列要转换日期,但是我遇到了MySQL语法异常set部分。

我的SQL脚本:

load data local infile 'movimento.csv' into table movimento
fields terminated by ',' lines terminated by '\n'
(id, anno, creditore, @data_pag, @data_spost, descrizione)
set data_pagamento = str_to_date(@data_pag, '%a %b %d %k:%i:%s UTC %Y')
set data_spostamento = str_to_date(@data_spost, '%a %b %d %k:%i:%s UTC %Y')
show warnings;

我在set部分遇到语法异常。错误:

错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'set data_spostamento = str_to_date(@data_spost,'%a%b%d%k:%i:%s UTC%Y')附近使用正确的语法 显示'在第5行 >

什么是正确的语法?

1 个答案:

答案 0 :(得分:2)

语法不正确。试试这个 -

LOAD DATA LOCAL INFILE 'movimento.csv' INTO TABLE movimento
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
(ID, anno, creditore, @data_pag, @data_spost, descrizione)
SET
  data_pagamento = STR_TO_DATE(@data_pag, '%a %b %d %k:%i:%s UTC %Y'),
  data_spostamento = STR_TO_DATE(@data_spost, '%a %b %d %k:%i:%s UTC %Y')