EXTRACT 関数 - Amazon Redshift

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

EXTRACT 関数

EXTRACT関数は、TIMESTAMP値または式、TIME、またはTIMETZから日付または時間部分(日、月、年、時、分、秒、ミリ秒、またはマイクロ秒など)を返します。

Syntax

EXTRACT ( datepart FROM { TIMESTAMP 'literal' | timestamp | time | timetz } )

Arguments

datepart

有効な値については、「日付またはタイムスタンプ機能の日付部分」を参照してください。

$literal

タイムスタンプ値。単一引用符で囲まれ、TIMESTAMPキーワードが先行します。

タイムスタンプ | | タイムス

TIMESTAMP、TIMESTAMPTZ、TIME、TIMETZ列、またはTIMESTAMP、TIMESTAMP WITH TIMEZONE、TIME、TIMETZに暗黙的に変換される式。

戻り型

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