与えられた日付/時刻式内で時間の構成要素に対応する 0 から 23 までの整数値を返す、スカラ日付/時間関数です。
Synopsis
{fn HOUR(time-expression)}
引数
time-expression 列の名前や、他のスカラ関数の結果、または日付やタイムスタンプ・リテラルである式。基本となるデータ型は、TIME または TIMESTAMP とすることができます。
概要
HOUR は、時刻整数または日付/時刻文字列の時間部分を返します。日付/時刻文字列は、以下の形式で指定します。
yyyy-mm-dd hh:mm:ss
この既定の時刻形式を変更するには、SET OPTION コマンドを使用します。
時間は 24 時間法で表されます。時間 (hh) 部分は、0 から 23 までの範囲の整数でなければなりません。ただし、ユーザの指定値に対して、範囲チェックは行われません。23 よりも大きな数、負の数、および小数は、指定されたとおりに返されます。入力では、先頭のゼロはオプションです。出力では、先頭と末尾のゼロは抑制されます。
時間部分が '0'、'00'、または数値でない値の場合、HOUR はゼロを返します。また、時刻文字列の時間部分が完全に省略されている場合 (':mm:ss' または '::ss') や時刻式が指定されていない場合も、ゼロ時が返されます。
DATEPART または DATENAME を使用して、同じ時刻情報を取得できます。
以下のメソッド・コールを使用することで、Caché ObjectScript からこの関数を呼び出すこともできます。
$SYSTEM.SQL.ABS(numeric-expression)
以下の 2 つの例は、time-expression 値が 18:45:38 なので、ともに数値 18 を返します。
SELECT DISTINCT {fn HOUR('2000-02-16 18:45:38')} AS Hour_Given
FROM Sample.Person
SELECT DISTINCT {fn HOUR(67538)} AS Hour_Given
FROM Sample.Person
以下の例は、日付/時刻文字列の時刻部分が省略されているので、ゼロ時を返します。
SELECT DISTINCT {fn HOUR('2000-02-16')} AS Hour_Given
FROM Sample.Person
以下の例は、すべて現在の時刻の時間部分を返します。CURRENT_TIMECURTIME は時刻文字列を返し、NOW は日付/時刻文字列を返します。
SELECT DISTINCT {fn HOUR(CURRENT_TIME)} AS Hour_Now
FROM Sample.Person
SELECT DISTINCT {fn HOUR({fn CURTIME()})} AS Hour_Now
FROM Sample.Person
SELECT DISTINCT {fn HOUR({fn NOW()})} AS Hour_Now
FROM Sample.Person
関連項目