構文
extract_datetime :: =
イラストの説明extract_datetime.gif
目的
EXTRACT
は、の値を抽出して返します。日時または間隔の値の式から指定された日時フィールド。 TIMEZONE_REGION
またはTIMEZONE_ABBR
(省略形)を抽出すると、返される値は適切なタイムゾーン名または省略形を含む文字列になります。他の値のいずれかを抽出すると、返される値はグレゴリオ暦にあります。タイムゾーン値を使用して日時から抽出する場合、返される値はUTCです。タイムゾーン名とそれに対応する略語のリストについては、V$TIMEZONE_NAMES
動的パフォーマンスビューをクエリしてください。
この関数は、非常にで日時フィールド値を操作するのに非常に役立ちます。以下の最初の例に示すように、大きなテーブル。
注:
タイムゾーン領域名は、夏時間機能に必要です。地域名は2つのタイムゾーンファイルに保存されます。デフォルトのタイムゾーンファイルは、パフォーマンスを最大化するために最も一般的なタイムゾーンのみを含む小さなファイルです。タイムゾーンがデフォルトファイルにない場合、ORA_TZFILE
環境変数を使用して完全な(より大きな)ファイルへのパスを指定するまで、夏時間のサポートはありません。
日時フィールドと日時または間隔の値の式の組み合わせによっては、あいまいさが生じます。このような場合、OracleDatabaseはUNKNOWN
を返します(追加情報については、以下の例を参照してください)。
抽出するフィールドは、
またはinterval_value_expr
。たとえば、ivから抽出できるのはYEAR
、MONTH
、およびDAY
のみです。 id = “3777035fed”>
の値。同様に、TIMEZONE_HOUR
とTIMEZONE_MINUTE
はTIMESTAMP
TIME
ZONE
データタイプ。
関連項目:
-
ORA_TZFILE
環境変数の設定の詳細については、 『Oracle Database管理者ガイド』 -
Oracleデータベースグローバリゼーションサポートガイド。両方のファイルのタイムゾーン領域名の完全なリストについては
-
datetime_value_expr
およびinterval_value_expr
-
動的パフォーマンスビューの詳細については、Oracleデータベースリファレンス
例
次の例では、oe.orders
テーブルから各月の注文数を返します。
次の例は1998年を返します。
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
次の例はサンプルテーブルhr.employees
から1998年以降に雇用されたすべての従業員を選択します。
次の例ではあいまいになるため、OracleはUNKNOWN
:
式にタイムゾーンの数値オフセットが指定されているため、あいまいさが生じます。その数値オフセットは、複数のタイムゾーン領域にマップされる場合があります。