我试图将csv文件导入表格。当我运行查询时,date_altered列不能正确填充。
插入查询:
xtc_db_query("
LOAD DATA INFILE '".$bpmand."'
INTO TABLE bpmand_update
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
(@skip, customers_id, @skip, @skip, date_altered, @skip)
");
其他信息 -
创建表:
$createtable = '
CREATE TABLE bpmand_update
(
orders_id int(11),
customers_id int(11),
bonuspoints_received int(11),
bonuspoints_spent int(11),
current_bonuspoints int(11),
date_altered datetime,
comment varchar(50));';
xtc_db_query($createtable);
csv文件如下所示:
"1260","13-11-2013 11:45:45"
"5222","09-01-2014 11:45:45"
编辑: 如果我到phpmyadmin并运行
INSERT INTO bpmand_update (customers_id, date_altered) VALUES ("1260","13-11-2013 11:45:45")
一切都很好
答案 0 :(得分:2)
SQL需要日期格式为YYYY-MM-DD HH:MM:SS
,您需要DD-MM-YYYY HH:MM:SS
。因此,您需要在this StackOverflow answer的行中修改SQL语句,如下所示:
LOAD DATA INFILE '".$bpmand."'
INTO TABLE bpmand_update
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
(@skip, customers_id, @skip, @skip, @date, @skip)
SET date_altered = STR_TO_DATE(@date,'%d-%m-%Y %H-%i-%s')
答案 1 :(得分:1)
在您的CSV文件中,datetime值的格式应为YYYY-MM-DD HH:MM:SS
,而不是13-11-2013 11:45:45
。因此,您需要将日期值转换为MySQL接受格式
DATETIME 值YYYY-MM-DD HH:MM:SS
格式。