web-dev-qa-db-ja.com

週が月曜日に始まると仮定して、PostgreSQLの日付フィールドから曜日を抽出します

select extract(dow from datefield)

0から6の数値を抽出します。0は日曜日です。週が月曜日に始まると仮定してSQLで曜日を取得する方法はありますか(したがって0は月曜日になります)?

11
Eugenio

マニュアルから

isodow

    The day of the week as Monday (1) to Sunday (7)

したがって、その結果から1を減算するだけです。

psql (9.6.1)
Type "help" for help.

postgres=> select extract(isodow from date '2016-12-12') - 1;
  ?column?
-----------
         0
(1 row)
postgres=>
17