EXTRACT スカラー関数
EXTRACT 関数は、その引数に基づいて、日付またはタイム・スタンプの一部分を戻します。
抽出日付値:
抽出時刻値:
タイム・ゾーン値の抽出:
スキーマは SYSIBM です。
結果はnullになる可能性があります。引数がnullの場合、結果もnull値となります。
- 日付値の抽出
- YEAR
- date-expression または timestamp-expression の年の部分を戻すことを指定します。 結果は、YEAR スカラー関数と同じです。 詳細は、 YEAR スカラー関数をご覧ください。
- MONTH
- date-expression または timestamp-expression の月の部分を戻すことを指定します。 結果は、MONTH スカラー関数と同じです。 詳細は、MONTH スカラー関数をご覧ください。
- DAY
- date-expression または timestamp-expression の日の部分を戻すことを指定します。 結果は、DAY スカラー関数と同じです。 詳細は、 DAY スカラー関数をご覧ください。
- 日付式
- 組み込み日付または組み込み文字ストリング・データ・タイプのいずれかの値を戻す式。
date-expression が文字ストリングまたはグラフィック・ストリングの場合、この date-expression は CLOB または DBCLOB であってはなりません。date-expression の値は、日付の有効な文字ストリング表現またはグラフィック・ストリング表現であることが必要です。 日付の文字列表現の有効な書式については、「datetime値の文字列表現」 を参照してください。
- タイムスタンプ式
- 組み込みタイム・スタンプまたは組み込み文字ストリング・データ・タイプのいずれかの値を戻す式。
timestamp-expression が文字ストリングまたはグラフィック・ストリングの場合、この timestamp-expression は CLOB または DBCLOB であってはなりません。timestamp-expression の値は、タイム・スタンプの有効な文字ストリング表現またはグラフィック・ストリング表現であることが必要です。 タイムスタンプの文字列表現の有効な形式については、「日時値の文字列表現」 を参照してください。
- 時刻値の抽出
- HOUR
- time-expression または timestamp-expression の時間の部分を戻すことを指定します。 結果は、HOUR スカラー関数と同じです。 詳細は、 HOUR スカラー関数をご覧ください。
- MINUTE
- time-expression または timestamp-expression の分の部分を戻すことを指定します。 結果は、MINUTE スカラー関数と同じです。 詳細はMINUTEスカラー関数をご覧ください。
- SECOND
- time-expression または timestamp-expression の秒の部分を戻すことを指定します。 結果は SECOND スカラー関数と同じになり、結果の精度と位取りは time-expression または timestamp-expression のタイプによって異なります。 詳細は、 SECOND スカラー関数をご覧ください。
- 時間表現
- 組み込み時刻または組み込み文字ストリング・データ・タイプのいずれかの値を戻す式。
time-expression が文字ストリングまたはグラフィック・ストリングの場合、この time-expression は CLOB または DBCLOB であってはなりません。time-expression の値は、時刻の有効なストリング表現であることが必要です。 時刻の文字列表現の有効な形式については、「datetime値の文字列表現」 を参照してください。
- タイムスタンプ式
- 組み込みタイム・スタンプまたは組み込み文字ストリング・データ・タイプのいずれかの値を戻す式。
timestamp-expression が文字ストリングまたはグラフィック・ストリングの場合、この timestamp-expression は CLOB または DBCLOB であってはなりません。timestamp-expression の値は、タイム・スタンプの有効なストリング表現であることが必要です。 タイムスタンプの文字列表現の有効な形式については、「日時値の文字列表現」 を参照してください。
- タイム・ゾーン値の抽出
- TIMEZONE_HOUR
- タイム・スタンプのタイム・ゾーンの時間コンポーネントを戻すことを指定します。 TIMEZONE_HOUR は、2 番目の引数が timestamp-expression で、timestamp-expression にタイム・ゾーンが含まれている場合にのみ指定できます。
- TIMEZONE_MINUTE
- タイム・スタンプのタイム・ゾーンの分コンポーネントを戻すことを指定します。 TIMEZONE_MINUTE は、2 番目の引数が timestamp-expression で、timestamp-expression にタイム・ゾーンが含まれている場合にのみ指定できます。
の値は TIMEZONE_HOUR および TIMEZONE_MINUTE 両方とも非負であるか、両方とも非正である必要があります。
timestamp-expression 引数にタイム・ゾーンが含まれている場合、結果は日時値の UTC 表現から判別されます。
この関数の結果のデータ・タイプは、指定される日時値の部分によって異なります。
- 以下のいずれかが指定されている場合、結果は INTEGER です。
- YEAR
- MONTH
- DAY
- HOUR
- MINUTE
- TIMEZONE_HOUR
- TIMEZONE_MINUTE
- TIMESTAMP(p) 値とともに SECOND が指定されている場合、結果は DECIMAL(2+p, p) となります (pば端数秒の精度)。
- TIME 値または TIME またはタイム・スタンプのストリング表現とともに SECOND が指定されている場合、結果は DECIMAL(8,6) になります。 小数桁には、端数秒が含まれます。
- 例 1:
- PRSTDATE 列には 2010-12-25 に相当する内部値が入っているものと仮定します。 次のステートメントは、値 12 を戻します。
SELECT EXTRACT(MONTH FROM PRSTDATE) FROM PROJECT; - 例 2:
ホスト変数 PRSTSZ が値を含むと仮定します。 2008-02-29-20.00.00.000000-08.30:
この SELECT ステートメントは、UTC で表された入力日時値の時間である値 4 を戻します。SELECT EXTRACT(HOUR FROM :PRSTSZ) FROM PROJECT;入力で表されるのと同じ時間値を戻すには、EXTRACT 関数を使用する前に値を TIMESTAMP WITHOUT TIME ZONE にキャストします。
この SELECT ステートメントは、最初にホスト変数のストリングとして表された時間である、値 20 を戻します。SELECT EXTRACT(HOUR FROM CAST (:PRSTSZ AS TIMESTAMP ) ) FROM PROJECT;SELECT EXTRACT(TIMEZONE_HOUR FROM :PRSTSZ) FROM PROJECT;この SELECT ステートメントは、値 -8 を戻します。
この SELECT ステートメントは、値 -30 を戻します。SELECT EXTRACT(TIMEZONE_MINUTE FROM :PRSTSZ) FROM PROJECT;
