2017-07-17 164 views
1

我CSV文件導入到表中cockroachdb使用下面的命令:導入CSV文件導入cockroachdb,錯誤日期時間格式

\| IFS=","; while read a1 a2; do echo "INSERT INTO sales VALUES ($a1, $a2);"; done < sales.csv; 

我的CSV文件只有兩行:

ID, time 
14,2013-02-17 05:39:36.710332000 

列的數據類型:

first column: NUMBER(10, 0) 
second column: TIMESTAMP 

我得到以下錯誤:

syntax error at or near "5" 

INSERT INTO sales VALUES (14, 2013-02-17 05:39:36.710332000 
             ^

基礎上CockroachDB documentation,我想我使用的是正確的TIMESTAMP格式(YYYY-MM-DD HH24:MI:SSXFF)。

有什麼建議嗎?

我也試圖改變在第二列中的數據,而不毫秒,像

2013-02-17 05:39:36 

,但我得到了同樣的錯誤。

回答

2

你需要引用您時刻字符串:

[email protected]:26257/test> INSERT INTO derp VALUES (1, 2013-02-17 05:39:36.710332000); 
invalid syntax: statement ignored: syntax error at or near "5" 
[email protected]:26257/test> INSERT INTO sales VALUES(1, '2013-02-17 05:39:36.710332000') 
INSERT 1 

您可以通過修改腳本來做到這一點,就像這樣:

\| IFS=","; while read a1 a2; do echo "INSERT INTO sales VALUES ($a1, '$a2');"; done < sales.csv; 
+0

此輸入文件收縮只有一行進行測試,在這種情況下,我必須對原始文件中的所有行進行更改。 – Cyrus

+0

您也可以更改輸入腳本以引用'$ a2'。我更新了我的答案。 –

+0

謝謝,我已將命令更改爲...($ a1,'$ a2')...錯誤爲pq:name「」ID「」未定義,「」在第一列名稱上加倍 – Cyrus