HOUR スカラー関数
HOUR 関数は、値の時の部分を戻します。
スキーマは SYSIBM です。
引数は、時刻、タイム・スタンプ、文字ストリング、グラフィック・ストリング、または数値データ・タイプのいずれかの値を戻す式であることが必要です。
- expression が文字ストリングまたはグラフィック・ストリングの場合、この expression は CLOB または DBCLOB であってはなりません。また expression の値は、実際の長さが 255 バイト以下の、時刻またはタイム・スタンプの有効なストリング表現であることが必要です。 時刻およびタイムスタンプの文字列表現の有効な形式については、「datetime 値の文字列表現」 を参照してください。
- expression が数値の場合、この数値は時刻期間またはタイム・スタンプ期間であることが必要です。 有効な時間およびタイムスタンプの期間の形式については、「日付時刻オペランド」 を参照してください。
expression がタイム・ゾーン付きのタイム・スタンプ、またはタイム・ゾーン付きのタイム・スタンプの有効なストリング表現である場合、結果は日時値の UTC 表現から決定されます。
この関数の結果は長精度整数 (large integer) です。
結果はnullになる可能性があります。引数がnullの場合、結果もnull値となります。
その他の規則は、引数のデータ・タイプに応じて以下のように異なります。
- 引数が時刻、タイムスタンプ、またはその文字列表現である場合、結果はその値の時間部分となり、1~24の範囲の整数となります。
- 引数が時刻期間またはタイム・スタンプ期間の場合、 結果は値の時の部分となります。すなわち、-99 から +99 までの整数です。 ゼロ以外の結果の符号は、引数と同じになります。
引数にタイムゾーンが含まれている場合、結果は UTC で表現された値の時間部分となります。
例 1: CLASSES という名前の
表に、スケジュールされたクラスごとに 1 行ずつ含まれている
ものとします。 また、クラスの開始時刻が STARTTM という名前の TIME 列に
入っているものとします。 CLASSES から、午後に始まるクラスを
表す行を選択します。
SELECT *
FROM CLASSES
WHERE HOUR(STARTTM) > 12;例 2: 以下の HOUR 関数の呼び出しは、同じ結果を戻します。
SELECT HOUR('2003-01-02-20.00.00'),
HOUR('2003-01-02-12.00.00-08:00'),
HOUR('2003-01-03-05.00.00+09:00')
FROM SYSIBM.SYSDUMMY1;この SELECT ステートメントのそれぞれの HOUR 関数の呼び出しについて、結果は 20 になります。入力引数がタイム・ゾーンを含む場合、結果は入力値の UTC 表現から決定されます。 SELECT 文のタイム・ゾーン付きのタイム・スタンプのストリング表現は、すべて同じ UTC 表現: 2003-01-02-20.00.00 になります。
