EXTRACT スカラー関数

EXTRACT 関数は、その引数に基づいて、日付またはタイム・スタンプの一部分を戻します。

抽出日付値:

構文図を読むビジュアルシンタックスダイアグラムをスキップするEXTRACT(YEARMONTHDAYFROM日付式タイムスタンプ式)

抽出時刻値:

構文図を読むビジュアルシンタックスダイアグラムをスキップするEXTRACT(HOURMINUTESECONDFROM時間表現タイムスタンプ式)

タイム・ゾーン値の抽出:

構文図を読むビジュアルシンタックスダイアグラムをスキップするEXTRACT(HOURMINUTESECONDTIMEZONE_HOURTIMEZONE_MINUTEFROM日付式時間表現タイムスタンプ式)

スキーマは 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 EXTRACT(HOUR FROM :PRSTSZ) FROM PROJECT;
この SELECT ステートメントは、UTC で表された入力日時値の時間である値 4 を戻します。
入力で表されるのと同じ時間値を戻すには、EXTRACT 関数を使用する前に値を TIMESTAMP WITHOUT TIME ZONE にキャストします。
SELECT EXTRACT(HOUR FROM CAST (:PRSTSZ AS TIMESTAMP ) ) FROM PROJECT;
この SELECT ステートメントは、最初にホスト変数のストリングとして表された時間である、値 20 を戻します。
SELECT EXTRACT(TIMEZONE_HOUR FROM :PRSTSZ) FROM PROJECT;
この SELECT ステートメントは、値 -8 を戻します。
SELECT EXTRACT(TIMEZONE_MINUTE FROM :PRSTSZ) FROM PROJECT;
この SELECT ステートメントは、値 -30 を戻します。
変更の終わり