web-dev-qa-db-ja.com

PostgreSQLで日付を切り捨てる方法は?

先週の終わりより前に発生したPostgreSQL 9のすべてのトランザクションを選択しようとしています。そのような間隔を構築するためにどの日付関数を使用する必要がありますか?

20
yegor256
_> select now();
"2013-09-09 11:43:29.307089+02"
> select date_trunc('week',now()-'1 week'::interval);
"2013-09-02 00:00:00+02" //start of previous week
> select date_trunc('week',now())
"2013-09-09 00:00:00+02" // start of current week
> select date_trunc('week',now())-'1 s'::interval;
"2013-09-08 23:59:59+02" // end of previous week
_

したがって、日付演算子の右側でdate_trunc('week',now())-'1 s'::interval;を使用すると機能します。これはタイムゾーン値のタイムスタンプであり、実際には日曜日の23:59:59を参照しますが、UTC時間との差は2時間で、ロケールと設定によって異なります。

26
regilero

日付を修正したり、当日から日を削除したりできます。

表示 this :Postgresに存在する日付/時刻演算子と関数です

あなたはpostgres 9.1でタグ付けしたので9.1関数をリンクしました、9.2リファレンスページにも存在します

1
Joe Taras