2012-05-14 61 views
0

我有一個來自第三方的CSV文件,我想創建一個Postgres表。 有幾列包含時間戳記樣式信息但具有不同的精度級別。 這裏是兩個領域 的一些示例數據「頒發的」 2012-05-07 4時04分05秒 「reportedtime」 2012-05-12 00:00:00.571395Postgres時態數據和CREATE表語法

還有另一場這是「持續時間」,並有數據像 90天,0:00:00 有沒有一個Postgres數據類型呢?

什麼將語法是,我需要使用這些字段創建一個表:

CREATE TABLE等等(發行???? , reportedtime ????, 持續時間??? ) ;

注:我已經熟悉了這部分:

COPY嗒嗒(發行,reportedtime,持續時間)從分隔符文件路徑 '' CSV標題;

只是不希望在我運行時彈出,因爲存儲的數據與表列類型不匹配。

+0

我認爲持續時間是一個INTERVAL類型,另外兩個是TIMESTAMP(不帶時區)。但是他們指出的精度'p'被埋在了postgres文檔的某個地方...... http://www.postgresql.org/docs/8.1/static/datatype.html http://www.postgresql.org/docs/ 8.1/static/datatype-datetime.html – JGFMK

+0

他們還提到。 Quote:時間戳和間隔類型的p的允許範圍是從0到6。但未能指出0到6代表什麼 - 文檔很糟糕! – JGFMK

+1

爲什麼使用非常古老的文檔?版本8.1是OEL近2年。 –

回答

1

使用timestamptzinterval類型(documentation)。我一直這樣使用時區感知類型,這爲以後的數據操作提供了更多的自由度。

CREATE TABLE blah (
    issued timestamptz, 
    reportedtime timestamptz, 
    duration interval); 

COPY blah FROM stdin; 
2012-05-07 04:04:05 2012-05-12 00:00:00.571395 90 days, 0:00:00 
\. 

SELECT * FROM blah;