タイムゾーンなしのタイムスタンプを表す文字列を変換する必要があります(たとえば、「2017-03-08T20:53:05」) タイムゾーン/ UTC ')をタイムゾーンのタイムスタンプに設定します。文字列を希望のタイムゾーンでタイムスタンプに変換する方法
問題は、デフォルトのタイムゾーンが 'Etc/UTC'ではないことです。だから、私はそれがデフォルトのタイムゾーンを持つ値に文字列を変換し
SELECT to_timestamp(field1, 'YYYY-MM-DD hh24:mi:ss')::timestamp without time zone at time zone 'Etc/UTC'
にしようとしていたときに、その後、「その他、各種/ UTC」にローカルタイムゾーンの変換を適用します。これは何が要求されるのではありません。
基本的には、元の文字列の値が、デフォルトのローカルタイムゾーンではなく、特定のタイムゾーンでの時刻を表すことをpostgresに伝える方法を探しています。
ありがとうございます。
更新:上記の記述が実際に動作していることを確認しました。
SELECT to_timestamp(field1, 'YYYY-MM-DD hh24:mi:ss')::timestamp without time zone at time zone 'Etc/UTC'
私はクライアントのタイムゾーン設定によって誤解を招きました。
を、ではありません。これは事実上、適切な解決策ではなく回避策です。もちろん、私はデフォルトのタイムゾーンを変更することができます。しかし、これは私が探しているものではありません。 – spoonboy
期待する出力例を教えてください。 'to_timestamp(...):: timestamp without time zone'は、タイムゾーンなしのタイムスタンプを期待通りに返します。 'select'クエリの終わりにタイムゾーンがあると(例えば' + 04')、これはPostgreSQLが 'set time zone 'で制御される出力をフォーマットする方法です。 'select timeestamp with time zone'は、常に現在のセッションのタイムゾーンを出力に追加します... – SegFault
これはフォーマットに関するものではありません。これは値の変換に関するものです。質問を例で更新します。 – spoonboy