DATE_PART スカラー関数
DATE_PART 関数は、引数に基づいて日時の部分を戻します。日付、時刻、タイム・スタンプ、期間の値から、指定のサブフィールドを抽出します。
スキーマは SYSIBM です。
- format-string
date-expression から抽出する日時の単位を指定する式。実際の長さが 255 バイト以下の組み込み文字ストリング・データ・タイプを返す式。format-string のフォーマット・エレメントによって、datetime-expression を切り捨てる方法を指定します。前後のブランクはストリングから除去されます。また、結果のサブストリングは、datetime-expression のタイプに有効なフォーマット・エレメントでなければなりません (SQLSTATE 22007)。format-string で使用できる値を表 1 にまとめています。
- datetime-expression
- 日時値を指定する式。その日時値から、format-string で指定した単位が抽出されます。 この式は、DATE、TIME、TIMESTAMP、日付期間、時刻期間、タイム・スタンプ期間のいずれかの値を戻す必要があります。
| 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 とタイム・スタンプ期間で有効です。 |
この関数の結果のデータ・タイプは 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
