EXTRACT 関数 - Amazon Redshift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

EXTRACT 関数

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

Syntax

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

Arguments

datepart

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

literal

一重引用符で囲まれ、先頭に TIMESTAMP キーワードがあるタイムスタンプの値。

timestamp|Times|timestz

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

戻り型

引数が TIMESTAMP、時刻、またはTIMEZZの場合 INTEGER

引数が 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 minutes from time_test; minutes ----------- 0 0 58

次の例は、各 time_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(ms from time '18:25:33.123456 EST'); date_part ----------- 123