1. ホーム
  2. postgresql

[解決済み] タイムゾーンを指定しないNow()

2023-04-06 13:26:13

質問

私は、カラム added_at というタイプの timestamp without time zone . 私は、この関数のデフォルト値を、タイムゾーンを除いた現在の日付時刻にしたいのです。関数 now() はタイムゾーンも返します。

どうすればこの問題を解決できるのでしょうか?

どのように解決するのですか?

SELECT now()::timestamp;

キャストは timestamptz が返す now() から、対応する timestamp で定義されるタイムゾーンの timezone の設定によって定義されます。それはまた 標準SQL関数 LOCALTIMESTAMP はPostgresに実装されています。

複数のタイムゾーンで運用しないのであれば、これで問題ないでしょう。そうでない場合は timestamptz に対して added_at . この差は?

ちなみに、これは まさに と同じですが、より騒がしく、より高価です。

SELECT now() AT TIME ZONE current_setting('timezone');