我有一个数据集如下
Date,Time,ID,Name,Count
01-MAY-2009,00:00,4,Town Hall (West),209
01-MAY-2009,02:00,17,Collins Place (South),28
01-MAY-2009,23:00,18,Collins Place (North),36
为此,我创建了具有以下架构的表,
CREATE TABLE table_name(date DATE, time TIME, id int, name VARCHAR(50), count int);
为了从“ .csv”文件中加载表格,
LOAD DATA INFILE '/home/cloudera/dataset.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(@var1, @var2, id, name, count)
SET date = STR_TO_DATE(@var1, '%d-%b-%Y')
SET time = TIME(@var2, "%H:%i");
但是我得到一个错误,
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET time = TIME(@var2, "%H:%i")' at line 1
我不明白错误是什么。我尝试过浏览MySQL网站和文档,但是无法确定正确的格式。谁能取悦我。提前致谢。
我认为您甚至不需要在TIME
这里使用该功能。您当前的hour:minute
字符串时间文字应该足够好,请参见文档:
将缩写值分配给TIME列时要小心。MySQL将冒号的缩写TIME值解释为一天中的时间。也就是说,“ 11:12”表示“ 11:12:00”,而不是“ 00:11:12”
作为有效的文字,您的时间将被解释为具有零秒的成分。因此,如果您仅按原样插入这些时间字符串,我认为它应该可以工作。尝试以下代码:
LOAD DATA INFILE '/home/cloudera/dataset.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(@var1, Time, id, name, count)
SET date = STR_TO_DATE(@var1, '%d-%b-%Y');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句