Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
DAYS 函数操纵 TIMESTAMP 或返回两个 TIMESTAMP 值之间的天数。有关具体详细信息,请参见以下的注释部分。
DAYS( timestamp-expression )
DAYS( timestamp-expression, timestamp-expression )
DAYS( timestamp-expression, integer-expression )
timestamp-expression TIMESTAMP 值。
integer-expression 要添加到 timestamp-expression 中的天数。如果 integer-expression 是负数,则从 timestamp-expression 中减去相应的天数。如果提供整数表达式,则必须将 timestamp-expression 显式地转换为 TIME、DATE 或 TIMESTAMP。如果 timestamp-expression 为 TIME 值,则会假定为当前日期。
有关转换数据类型的信息,请参见CAST 函数 [Data type conversion]。
INTEGER,使用语法 1 或语法 2。
TIMESTAMP,使用语法 3。
DAYS 函数的结果取决于其参数。DAYS 函数忽略其参数中的小时、分钟和秒。
语法 1 如果向 DAYS 函数传递单个 timestamp-expression 值,此函数会以 INTEGER 形式返回 0000-02-29 和 timestamp-expression 之间的天数。
0000-02-29 并不表示实际日期,它是 DAYS 函数使用的缺省日期。
语法 2 如果向 DAYS 函数传递两个 TIMESTAMP 值,此函数会返回它们之间的整数天数。
语法 3 如果向 DAYS 函数传递一个 TIMESTAMP 值和一个 INTEGER 值,此函数将返回向 timestamp-expression 参数添加整数天数后的 TIMESTAMP 结果。
不使用语法 2,请使用 DATEDIFF 函数。不使用语法 3,请使用 DATEADD 函数。
SQL/2008 服务商扩充。
以下语句返回整数 729889。
SELECT DAYS( '1998-07-13 06:07:12' );
以下语句返回整数值 -366,表示第二个 DATE 值比第一个 DATE 值早 366 天。建议使用第二个示例 (DATEDIFF)。
SELECT DAYS( '1998-07-13 06:07:12', '1997-07-12 10:07:12' );
SELECT DATEDIFF( day, '1998-07-13 06:07:12', '1997-07-12 10:07:12' );
以下语句返回 TIMESTAMP 值 1999-07-14 00:00:00.000。建议使用第二个示例 (DATEADD)。
SELECT DAYS( CAST('1998-07-13' AS DATE ), 366 );
SELECT DATEADD( day, 366, '1998-07-13' );