2016-05-16 61 views
0

我有一個包含出生日期列的CSV文件。我使用Adobe Campaign工具(以前稱爲neolane)導入我的PostgreSQL數據庫。爲舊日期更改日期值 - 導入CSV

在我的工具,我提供的出生日期字段的數據類型爲MM/DD/YYYY HH:mm:ss的

日期像1942年9月20日12:00:00 AM和更新時,存儲到數據庫正在正確保存,例如1942-09-20 00:00:00 + 06:30。不知道如何計算第二部分。如果你可以對此發表評論。

然後較舊的值(所有年齡大於1941),如1941年10月1日12:00:00 AM被存儲在數據庫中作爲1941年9月30日23:23:20 + 05:53: 20這是在出生日期欄中提到的日齡。

不確定這是否與PostgreSQL或產品有關。

+0

「+」後面的部分是時區偏移量。 –

+0

謝謝安德魯。我不理解的一點是,爲什麼數據庫爲某些值選擇+6:30,其他值爲+5:30。 正如您所見,源CSV中沒有提及時區 – Vipul

+0

它可能是您用來導入數據的工具不符合您的期望。時區偏移量爲+05:53:20的可能性不大。檢查文檔。 –

回答

1

首先,你說你正在嘗試導入日期,但明確導入時間戳。日期沒有小時,分鐘或秒鐘。

當你想要一個日期時不要使用時間戳。其次,您沒有爲這些值提供時區,而是將它們存儲爲「帶時區的時間戳」。

我不確定你的當地時區是什麼,但如果我們嘗試加爾各答,那麼它看起來像我們得到類似的結果。隨着時間的推移,時區偏移會變得有點奇怪。在很多地方,直到主要的火車旅行和電報到達時,標準化時區非常緊迫。這可能需要很長時間取決於當地政治。

所以 - 如果你可以這樣做,使用日期。

如果不是,請指定保存數據時的意思時區,也不要使用午夜,使用10AM或中午或類似的時間。否則,時區更改將(正確)影響顯示的日期。

有一個日期和時間處理in the manuals的討論。那裏提到了"Olson" timezone history database,並提供了一些有趣的閱讀。