Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
HOURS 函数操纵 TIMESTAMP,或返回两个 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 函数 [Data type conversion]。
INTEGER,使用语法 1 或语法 2。
TIME 或 TIMESTAMP,使用语法 3。
HOURS 函数的结果取决于其参数。
语法 1 如果向 HOURS 函数传递单个 timestamp-expression 值,该函数会以 INTEGER 形式返回 0000-02-29 午夜和 timestamp-expression 之间的小时数。
0000-02-29 并不表示实际日期,它是 HOURS 函数使用的缺省 TIMESTAMP 值。
语法 2 如果向 HOURS 函数传递两个 TIMESTAMP 值,此函数会返回它们之间的整数小时数。
语法 3 如果向 HOURS 函数传递一个 TIMESTAMP 值和一个 INTEGER 值,此函数将返回向 time-or-timestamp-expression 参数添加整数个小时数后的 TIMESTAMP 结果。同样,如果传递 TIME 值作为第一个参数,结果将返回 TIME 值。语法 3 不支持第一个参数的隐式转换。可能需要显式地将第一个参数转换为 DATE、TIME 或 TIMESTAMP 值。如果第一个参数为 DATE,则假定时间部分为午夜。
不使用语法 2,请使用 DATEDIFF 函数。不使用语法 3,请使用 DATEADD 函数。
SQL/2008 服务商扩充。
以下语句返回值 4,表示第二个 TIMESTAMP 值比第一个晚四个小时。建议使用第二个示例 (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' );
以下语句返回日期时间 13.05.99 02:05:070.000。建议使用第二个示例 (DATEADD)。
SELECT HOURS( CAST( '1999-05-12 21:05:07' AS DATETIME ), 5 ); SELECT DATEADD( hour, 5, '1999-05-12 21:05:07' );