2016-05-16 8 views
0

生年月日の列を含むCSVファイルがあります。 Adobe Campaignツール(以前はneolaneと呼ばれていました)を使用してPostgreSQLデータベースにインポートしています。古い日付の日付値が変更されています - インポートCSV

私は YYYY/MM/DD HHする生年月日列のデータ型を提供してきました私のツールで

:mm:ssの

日付1942年9月20日午前12時00分00秒AMのように以降は、データベースに保存すると正しく保存されます。 1942-09-20 00:00:00 + 06:30。どのくらいの秒が計算されているかわからない。あなたはそれについてコメントすることができます。

次に古い値(すべての古い1941より)例えばとして1941年10月1日午前12時○○分00秒1941年9月30日23としてデータベースに格納されているAM:23:20 + 05:53:生年月日の欄に記載されている年齢の年齢の20

これがPostgreSQLまたは製品に関連する問題であるかどうかは不明です。

+0

"+"の後の部分は、タイムゾーンオフセットです。 –

+0

ありがとうアンドリュー。私が理解していないのは、なぜデータベースが+6:30をいくつかの値でピックアップし、他は+5:30です。 ソースCSVには、タイムゾーンの記載がありません。 – Vipul

+0

データをインポートするために使用しているツールが、期待どおりに動作していない可能性があります。 +05:53:20のタイムゾーンオフセットは多少ありません。ドキュメントを確認してください。 –

答えて

1

まず、日付をインポートしようとしていますが、タイムスタンプをはっきりとインポートしているとします。日付には時間、分、秒がありません。

日付を使用するときにタイムスタンプを使用しないでください。

第2に、これらの値にタイムゾーンを指定するのではなく、「タイムゾーン付きタイムスタンプ」として保存しています。

あなたのローカルタイムゾーンは何か分かりませんが、カルカッタを試してみると同様の結果になるようです。タイムゾーンのオフセットは、時間が経つにつれてさらに奇妙になる傾向があります。多くの場所で、主要な列車の旅や電信の到着まではタイムゾーンを標準化することが非常に緊急であった。それは地方の政治によっては時間がかかるかもしれない。

だから可能ならば、日付を使用してください。

データを保存するときに指定する時間帯を指定し、深夜0時または正午またはそれに類する時刻を使用しないでください。さもなければ、タイムゾーンの変更は表示される日付に(かなり正確に)影響を与えます。

日付と時刻の処理についての説明がありますin the manuals"Olson" timezone history databaseはそこに記載されており、興味深い読書を提供しています。

関連する問題