Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
操作 TIMESTAMP 或返回两个 TIMESTAMP 值之间的秒数。请参见下面的注释部分。
SECONDS( timestamp-expression )
SECONDS( timestamp-expression, timestamp-expression )
SECONDS( time-or-timestamp-expression, integer-expression )
timestamp-expression TIMESTAMP 值。
time-or-timestamp-expression TIME 或 TIMESTAMP 类型的值。
integer-expression 要添加到 time-or-timestamp-expression 中的秒数。如果 integer-expression 是负数,则从 time-or-timestamp-expression 中减去相应的秒数。如果提供整数表达式,则必须将 time-or-timestamp-expression 显式地转换为 TIME、DATE 或 TIMESTAMP 数据类型。如果 time-or-timestamp-expression 是 DATE 类型,则其时间部分会假定为午夜。
UNSIGNED BIGINT,使用语法 1。
SIGNED BIGINT,使用语法 2。
TIME 或 TIMESTAMP,使用语法 3。
SECONDS 函数的结果取决于其参数。
语法 1 如果向 SECONDS 函数传递单个 timestamp-expression,此函数会以 UNSIGNED BIGINT 形式返回 0000-02-29 午夜与 timestamp-expression 之间的秒数。
0000-02 并不表示实际日期,它是 SECONDS 函数使用的缺省日期。
语法 2 如果向 SECONDS 函数传递两个 TIMESTAMP 值,此函数会以 SIGNED BIGINT 值的形式返回它们之间的整数秒数。
语法 3 如果向 SECONDS 函数传递一个 TIMESTAMP 值和一个 INTEGER 值,此函数将返回向 time-or-timestamp-expression 添加整数秒数后的 TIMESTAMP 结果。同样,如果向 SECONDS 函数传递 TIME 值,函数将返回 TIME 类型的值。
不使用语法 2,请使用 DATEDIFF 函数。不使用语法 3,请使用 DATEADD 函数。
SQL/2008 服务商扩充。
以下语句返回值 14400,表示第二个 TIMESTAMP 值比第一个晚 14400 秒。
SELECT SECONDS( '1999-07-13 06:07:12', '1999-07-13 10:07:12' ); SELECT DATEDIFF( second, '1999-07-13 06:07:12', '1999-07-13 10:07:12' );
以下语句返回值 63062431632。
SELECT SECONDS( '1998-07-13 06:07:12' );
以下语句返回 TIMESTAMP 值 1999-05-12 21:05:12.000。
SELECT SECONDS( CAST( '1999-05-12 21:05:07' AS TIMESTAMP ), 5); SELECT DATEADD( second, 5, '1999-05-12 21:05:07' );