postgresデータベースで次を実行しました
SET TIME ZONE 'UTC';
以下を実行すると、タイムゾーンとして UTC が表示されます。
show timezone;
SELECT NOW();
次に、テーブルをクエリします。私のテーブルにはいくつかの列があり、そのうちのいくつかは日付列です。そのテーブルにクエリを実行すると、日付列は UTC で日付を表示しますか? 列には時間がなく、日付だけです。このタイムゾーン設定はどのように機能しますか?
postgresデータベースで次を実行しました
SET TIME ZONE 'UTC';
以下を実行すると、タイムゾーンとして UTC が表示されます。
show timezone;
SELECT NOW();
次に、テーブルをクエリします。私のテーブルにはいくつかの列があり、そのうちのいくつかは日付列です。そのテーブルにクエリを実行すると、日付列は UTC で日付を表示しますか? 列には時間がなく、日付だけです。このタイムゾーン設定はどのように機能しますか?
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
は入力または出力にタイムゾーンを使用しません。
詳細については、ドキュメントを参照してください。