-1

postgresデータベースで次を実行しました

SET TIME ZONE 'UTC';

以下を実行すると、タイムゾーンとして UTC が表示されます。

show timezone;

SELECT NOW();

次に、テーブルをクエリします。私のテーブルにはいくつかの列があり、そのうちのいくつかは日付列です。そのテーブルにクエリを実行すると、日付列は UTC で日付を表示しますか? 列には時間がなく、日付だけです。このタイムゾーン設定はどのように機能しますか?

4

1 に答える 1

1

Postgresql ではSET TIME ZONE 'UTC'、「現在の」(セッション スコープ) タイムゾーンのみを設定します。

明らかに、タイムゾーンは日付データ型には影響しません。これに加えて、Postgresql には 2 つの日時付きデータ型があります。

timestamptz = timestamp with time zone

timestamp   = timestamp without time zone

実際、タイムゾーンを保存するものはありませんが、「現在のタイムゾーン」がどのように影響するかが異なります。簡単に言えば、timestamp (with time zone)入力には timezone が必要です。何も指定されていない場合、デフォルトは「現在のタイムゾーン」です。その出力は「現在のタイムゾーン」を使用して書き込まれます。Atimestamp *without* time zoneは入力または出力にタイムゾーンを使用しません。

詳細については、ドキュメントを参照してください。

于 2013-04-30T16:03:49.170 に答える