「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
EXTRACT 関数
EXTRACT関数は、日付または時刻部分を返します。たとえば、日付、月、年、時、分、秒、ミリ秒、またはマイクロ秒は、TIMESTAMP値または式、TIME、またはTIMETZから返されます。
Syntax
EXTRACT ( datepart FROM { TIMESTAMP 'literal' | timestamp | time | timetz } )
Arguments
- datepart
-
有効な値については、「日付またはタイムスタンプ機能の日付部分」を参照してください。
- literal
-
一重引用符で囲まれ、TIMESTAMPキーワードの前に続くタイムスタンプ値。
- タイムスタンプ | 回 | タイムズツ
-
TIMESTAMP、TIMESTAMPTZ、TIME、またはTIMETZ列、またはTIMESTAMP、TIMEZONE、TIME、またはTIMETZを含むTIMESTAMPに暗黙的に変換される式。
戻り型
INTEGER 引数が TIMESTAMP、TIME、または TIMETZ の場合
引数が TIMESTAMPTZ の場合は DOUBLE PRECISION
タイムスタンプ列の例
次の例は、支払われた価格が 10.000 ドル以上の売上の週数を決定します。
select salesid, extract(week from saletime) as weeknum from sales where pricepaid > 9999 order by 2; salesid | weeknum --------+--------- 159073 | 6 160318 | 8 161723 | 26 (3 rows)
次の例は、リテラル タイムスタンプ値から分の値を返します。
select extract(minute from timestamp '2009-09-09 12:08:43'); date_part ----------- 8 (1 row)
時間列の例
次の例のテーブル TIME_TEST には、3 つの値が挿入された TIME_VAL (タイプ TIME) 列があります。
select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00
次の例は、各time_valから秒を抽出します。
select extract(minute from time_val) as secs from time_test; secs ----------- 0 0 58
次の例は、各 timetz_val から時間を抽出します。
select extract(hour from time_val) as hours from time_test; hours ----------- 20 0 0
次の例は、リテラル値からミリ秒を抽出します。
select extract(ms from time '18:25:33.123456'); date_part ----------- 123
TIMETZカラムの例
次のテーブル例TIMETZ_TESTには、3つの値が挿入されたTIMETZ_VAL(タイプTIMETZ)列があります。
select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00
次の例は、各 timetz_val から時間を抽出します。
select extract(hour from timetz_val) as hours from time_test; hours ----------- 4 0 5
次の例は、リテラル値からミリ秒を抽出します。抽出が処理される前にリテラルがUTCに変換されません。
select extract(hour from time '18:25:33.123456 EST'); date_part ----------- 18