Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
TIMESTAMP を操作するか、2 つの TIMESTAMP 値の間の時間数を返します。詳細については、この関数の使用法を参照してください。
HOURS ( timestamp-expression )
HOURS ( timestamp-expression, timestamp-expression )
HOURS ( time-or-timestamp-expression, integer-expression )
time-or-timestamp-expression TIME または TIMESTAMP データ型の値。
timestamp-expression TIMESTAMP データ型の値。
integer-expression time-or-timestamp-expression に加算される時間数。integer-expression が負の場合、time-or-timestamp-expression から適切な時間数が引かれます。
データ型のキャストの詳細については、CAST 関数 [データ型変換]を参照してください。
構文 1 または構文 2 では INTEGER。
構文 3 では TIME または TIMESTAMP。
HOURS 関数の結果は、その引数によって異なります。
構文 1 1 つの timestamp-expression を HOURS 関数に渡すと、0000-02-29 の真夜中から timestamp-expression までの時間数を INTEGER として返します。
0000-02-29 は実際の日付を指すための値ではありません。HOURS 関数で使用されるデフォルトの TIMESTAMP 値です。
構文 2 2 つの TIMESTAMP 値を HOURS 関数に渡すと、その間の時間数を整数で返します。
構文 3 TIMESTAMP 値と INTEGER 値を HOURS 関数に渡すと、整数の時間数を time-or-timestamp-expression 引数に加算した TIMESTAMP 結果を返します。同様に、TIME 値を最初の引数として渡すと、TIME 値を結果として返します。構文 3 では、最初の引数の暗黙的変換をサポートしていません。最初の引数を DATE、TIME または TIMESTAMP の値に明示的にキャストしてください。最初の引数が DATE の場合、時刻部分には真夜中が使用されます。
構文 2 の代わりに、DATEDIFF 関数を使用します。構文 3 の代わりに、DATEADD 関数を使用します。
SQL/2008 ベンダー拡張。
次の文は、値 4 を返します。これは、2 番目の TIMESTAMP 値が、最初のタイムスタンプの 4 時間後であることを示します。2 つ目の例 (DATEDIFF) の使用をおすすめします。
SELECT HOURS( '1999-07-13 06:07:12', '1999-07-13 10:07:12' ); SELECT DATEDIFF( hour, '1999-07-13 06:07:12', '1999-07-13 10:07:12' );
次の文は、値 17517342 を返します。
SELECT HOURS( '1998-07-13 06:07:12' );
次の文は、日時 1999-05-13 02:05:07.000 を返します。2 つ目の例 (DATEADD) の使用をおすすめします。
SELECT HOURS( CAST( '1999-05-12 21:05:07' AS DATETIME ), 5 ); SELECT DATEADD( hour, 5, '1999-05-12 21:05:07' );