説明
この関数は、指定された時間フィールドまたは式から年、月、日、時、分、秒、タイムゾーンなどの要素を抽出します。
構文
EXTRACT ({ YEAR
| MONTH
| DAY
| HOUR
| MINUTE
| SECOND
| TIMEZONE_HOUR
| TIMEZONE_MINUTE
| TIMEZONE_REGION
| TIMEZONE_ABBR
}
FROM datetime)
パラメータの説明
| パラメータ | 説明 |
|---|---|
| YEAR | 抽出する年を指定します。 |
| MONTH | 抽出する月を指定します。 |
| DAY | 抽出する日を指定します。 |
| HOUR | 抽出する時間を指定します。 |
| MINUTE | 抽出する分を指定します。 |
| SECOND | 抽出する秒数を指定します。 |
| TIMEZONE_HOUR | 抽出するタイムゾーンの時を指定します。 |
| TIMEZONE_MINUTE | 抽出するタイムゾーンの分を指定します。 |
| TIMEZONE_REGION | 返されるタイムゾーンのリージョン名を指定します。 説明 時間式にタイムゾーンの数字オフセットが提供されており、その数字オフセットが複数のタイムゾーンのリージョン名にマッピングされる可能性がある場合、 UNKNOWN を返します。 |
| TIMEZONE_ABBR | 返されるタイムゾーンのリージョン名の略称を指定します。 説明 時間式にタイムゾーンの数字オフセットが提供されており、その数字オフセットが複数のタイムゾーンのリージョン名にマッピングされる可能性がある場合、 UNK を返します。 |
| datetime | DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECONDなどのデータ型の値。 |
説明
YEARまたはMONTHを指定する場合、datetimeデータ型はDATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、またはINTERVAL YEAR TO MONTHとなります。DAYを指定する場合、datetimeデータ型はDATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、またはINTERVAL DAY TO SECONDとなります。HOUR、MINUTE、またはSECONDを指定する場合、datetimeデータ型はTIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、INTERVAL DAY TO SECONDとなります。TIMEZONE_HOUR、TIMEZONE_MINUTE、TIMEZONE_ABBR、またはTIMEZONE_REGIONを指定する場合、datetimeデータ型はTIMESTAMP WITH TIME ZONEまたはTIMESTAMP WITH LOCAL TIME ZONEとなります。
返り値の型
TIMEZONE_REGIONおよびTIMEZONE_ABBR要素を抽出する場合、返り値のデータ型はVARCHAR2です。その他の要素を抽出する場合、返り値のデータ型は
NUMBERです。
例
次のステートメントを実行します:
obclient> SELECT EXTRACT(HOUR FROM TIMESTAMP '2021-11-17 12:38:40') "HOUR",
EXTRACT(MINUTE FROM TIMESTAMP '2021-11-17 12:38:40') "MINUTE",
EXTRACT(SECOND FROM TIMESTAMP '2021-11-17 12:38:40') "SECOND",
EXTRACT(DAY FROM TIMESTAMP '2021-11-17 12:38:40') "DAY",
EXTRACT(MONTH FROM TIMESTAMP '2021-11-17 12:38:40') "MONTH",
EXTRACT(YEAR FROM TIMESTAMP '2021-11-17 12:38:40') "YEAR",
EXTRACT(TIMEZONE_HOUR FROM TIMESTAMP '2021-11-17 12:38:40 +08:00') "TIMEZONE_HOUR",
EXTRACT(TIMEZONE_REGION FROM TIMESTAMP '2021-11-17 12:38:40 +08:00') "TIMEZONE_REGION",
EXTRACT(TIMEZONE_ABBR FROM TIMESTAMP '2021-11-17 12:38:40 +08:00') "TIMEZONE_ABBR"
FROM DUAL;
+------+--------+--------+------+-------+------+---------------+-----------------+---------------+
| HOUR | MINUTE | SECOND | DAY | MONTH | YEAR | TIMEZONE_HOUR | TIMEZONE_REGION | TIMEZONE_ABBR |
+------+--------+--------+------+-------+------+---------------+-----------------+---------------+
| 12 | 38 | 40 | 17 | 11 | 2021 | 8 | UNKNOWN | UNK |
+------+--------+--------+------+-------+------+---------------+-----------------+---------------+
1 row in set