我想從文本文件導入一些數據到PostgreSQL
表。當我創建表時,我有一個數據類型爲DATE
的列。當我要導入的數據,它給這個錯誤:如何將YYYY/MM和YYYY/MM/DD導入PostgreSQL中的同一列?
ERROR: invalid input syntax for type date: "2009/11"
我的一些該列數據有YYYY/MM/DD
格式,其中一些有YYYY/MM
格式。現在我的問題是如何導入這些數據?
我想從文本文件導入一些數據到PostgreSQL
表。當我創建表時,我有一個數據類型爲DATE
的列。當我要導入的數據,它給這個錯誤:如何將YYYY/MM和YYYY/MM/DD導入PostgreSQL中的同一列?
ERROR: invalid input syntax for type date: "2009/11"
我的一些該列數據有YYYY/MM/DD
格式,其中一些有YYYY/MM
格式。現在我的問題是如何導入這些數據?
備案。我自己不使用PostgresSQL,所以我不知道是否有本地工具或者這樣做的方式。
因爲它是一個時間的操作,我將在列的數據類型從日期更改爲TEXT,或創建一個新的臨時TEXT列。
導入該表上的txt文件,並執行一個查詢,以添加缺少的一天(因爲它並不重要,但通過日期格式要求)
UPDATE table SET dateColumn = dateColumn + '/01' WHERE len(dateColumn) = 7;
請寫在一個有效的PostgreSQL的語法。當它的長度爲7(YYYY/MM)時,您應該更新列值並添加'/ 01'。
此後,從temp欄複製值到DATE列或更改數據類型回DATE。無論你選擇什麼路徑。
聖誕快樂!
惡,下面的答案由嘟嘟是多更好。 –
select to_date(dateColumn,'yyyy/mm/dd')
select to_date('2009/11/07','yyyy/mm/dd')
2009-11-07
select to_date('2009/11','yyyy/mm/dd')
2009-11-01
select to_date('2009','yyyy/mm/dd')
2009-01-01
在這種情況下,解決方案非常簡單 –
我想導入數據,導入時出錯!如何選擇命令可以幫助? –
如果你正在做一個更新,因爲在其他答案這是最乾淨的方式做到這一點 –
如果不需要的一天,我想補充一個/ 01的YYYY/MM輸入。 – Jaxedin
@Jaxedin我用這個命令導入數據:\ copy Papers FROM'Papers.txt';如何在導入時向數據添加/ 01? –
哦。這是一個重要的步驟......是一次性操作還是不得不多次導入該文件?您是否訪問過出版Papers.txt的流程? – Jaxedin