22

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

4

2 に答える 2

33
> 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 時間の差は、ロケールと設定によって異なります。

于 2013-09-09T09:44:09.647 に答える
2

日付を修正したり、現在の日から日数を削除したりできます。

これを示してください: Postgres に存在する日付/時刻演算子と関数です

postgres 9.1 でタグ付けされているため、9.1 関数をリンクしました。9.2 リファレンス ページにも存在します。

于 2013-09-09T09:41:31.510 に答える