DATE_PART スカラー関数

DATE_PART 関数は、引数に基づいて日時の部分を戻します。日付、時刻、タイム・スタンプ、期間の値から、指定のサブフィールドを抽出します。

構文図を読む構文図をスキップするDATE_PART(format-string ,datetime-expression)

スキーマは SYSIBM です。

format-string

date-expression から抽出する日時の単位を指定する式。実際の長さが 255 バイト以下の組み込み文字ストリング・データ・タイプを返す式。format-string のフォーマット・エレメントによって、datetime-expression を切り捨てる方法を指定します。前後のブランクはストリングから除去されます。また、結果のサブストリングは、datetime-expression のタイプに有効なフォーマット・エレメントでなければなりません (SQLSTATE 22007)。format-string で使用できる値を表 1 にまとめています。

datetime-expression
日時値を指定する式。その日時値から、format-string で指定した単位が抽出されます。 この式は、DATE、TIME、TIMESTAMP、日付期間、時刻期間、タイム・スタンプ期間のいずれかの値を戻す必要があります。
表 1. format-string で使用できる値
format-string 説明
EPOCH 1970-01-01 00:00:00.00 から経過した秒数。値は正または負になります。

DATE、TIME、TIMESTAMP で有効です。

MILLENNIUM/MILLENNIUMS 1000 年。例えば 2 は、2000 年 1 月 1 日から 2999 年 12 月 31 日までの間にある日付になります。

DATE、TIMESTAMP、日付期間、タイム・スタンプ期間で有効です。

CENTURY/CENTURIES 何番目の 100 年間か。例えば 20 は、2000 年 1 月 1 日から 2099 年 12 月 31 日までの間にある日付になります。

DATE、TIMESTAMP、日付期間、タイム・スタンプ期間で有効です。

DECADE/DECADES 何番目の 10 年間か。例えば 201 は、2010 年 1 月 1 日から 2019 年 12 月 31 日までの間にある日付になります。

DATE、TIMESTAMP、日付期間、タイム・スタンプ期間で有効です。

YEAR/YEARS 年。例えば、2015 です。

DATE、TIMESTAMP、日付期間、タイム・スタンプ期間で有効です。

QUARTER 指定した日の含まれる四半期が 1 年のうちの何番目の四半期か (1 から 4)。

DATE、TIMESTAMP、日付期間、タイム・スタンプ期間で有効です。

MONTH/MONTHS

1 年のうちの何番目の月か (1 から 12)。

DATE、TIMESTAMP、日付期間、タイム・スタンプ期間で有効です。

WEEK

指定した日の含まれる週が 1 年のうちの何番目の週か (1 から 53)。この値には、月曜から始まる ISO-8601 の週定義が使用されるため、年によっては 53 週までありますが、1 月の最初の数日が前年の 52 週目か 53 週目に含まれるケースがあります。

DATE と TIMESTAMP で有効です。

DAY/DAYS

月の何日目か (1 から 31)。

DATE、TIMESTAMP、日付期間、タイム・スタンプ期間で有効です。

DOW

曜日。1 (日曜日) から 7 (土曜日)。

DATE と TIMESTAMP で有効です。

DOY

年の何日目か (1 から 366)。

DATE と TIMESTAMP で有効です。

HOUR/HOURS

時間 (0 から 23)。

TIME、TIMESTAMP、時刻期間、タイム・スタンプ期間で有効です。

MINUTE/MINUTES

分 (0 から 59)。

TIME、TIMESTAMP、時刻期間、タイム・スタンプ期間で有効です。

SECOND/SECONDS

秒 (0 から 59)。小数部分は含みません。

TIME、TIMESTAMP、時刻期間、タイム・スタンプ期間で有効です。

MILLISECOND/MILLISECONDS

1000 分の 1 秒までの小数部分を含む秒数に 1000 を掛けた値 (0 から 59999)。

TIMESTAMP とタイム・スタンプ期間で有効です。

MICROSECOND/MICROSECONDS

1,000,000 分の 1 秒までの小数部分を含む秒数に 1,000,000 を掛けた値 (0 から 59999999)。

TIMESTAMP とタイム・スタンプ期間で有効です。

format-string の値に大/小文字の区別はありません。

この関数の結果のデータ・タイプは BIGINT です。引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数が NULL であれば、結果は NULL 値です。

  • 例 1: 日付値から日の部分を抽出します。
    
    values DATE_PART('DAY', DATE('2007-02-18'));
        Result: 18
  • 例 2: 日付期間から年の部分を抽出します。
    
    values DATE_PART('YEAR', cast(20130710 as decimal(8,0)));
        Result: 2013
  • 例 3: 時刻期間から時間の部分を抽出します。
    
    values DATE_PART('HOUR', cast(075559 as decimal(6,0)));
        Result: 7