2017-05-25 4 views
0

私は、ODBCエクスポート機能を使用して、Accessテーブルからpostgresテーブルにデータを持ち込んでいます。 Postgresはtimestampzという新しいタイムスタンプを作成しています。これは、UTCの日付(UTCから始まる)をUTCに強制して、約4時間すべてをシフトしているようです。 例==このレコードは2017/05/20 00:00:00となり、 2017-05-19 20:00:00postgresインポート時のタイムゾーンシフト

+0

それはタイムゾーンにそれらを入れている場合は、あなたの日付は、実際にはむしろあなたのpostgresインスタンスのタイムゾーンよりUTC、であるかのように、それは、データベースサーバの場所のタイムゾーンを使用します、そして、あなたはそれを修正する必要がありますあなたがデータを入力するときに。あるいは、単にタイムゾーンなしでpostgresテーブルのデータ型を1に変更し、そのデータに対して常にUTCを使用することができます。 – ManoDestra

答えて

0

タイムゾーン付きのタイムスタンプ実際に日付を保存するUTCであなたがUTCであなたの時間を過ごしたなら、あなたは良いです。あなたが観察する4時間のシフトは、データベースに保存されていません - それはあなたのクライアントタイムゾーンのためです。 Postgresはあなたのゾーンに応じて(utcに保存された)時間を表示します。 EG:

t=# select '2017/05/20 00:00:00'::timestamptz at time zone 'utc'; 
     timezone 
--------------------- 
2017-05-19 20:00:00 
(1 row) 

Time: 0.368 ms 
t=# set timezone TO 'utc'; 
SET 
Time: 9.633 ms 
t=# select '2017/05/20 00:00:00'::timestamptz at time zone 'utc'; 
     timezone 
--------------------- 
2017-05-20 00:00:00 
(1 row) 

Time: 0.353 ms 
関連する問題