Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
WEEKS 函数操纵 TIMESTAMP,或返回两个 TIMESTAMP 值之间的周数。请参见下面的注释部分。
WEEKS( timestamp-expression )
WEEKS( timestamp-expression, timestamp-expression )
WEEKS( timestamp-expression, integer-expression )
timestamp-expression TIMESTAMP 类型的日期和时间值。
integer-expression 要添加到 timestamp-expression 中的周数。如果 integer-expression 是负数,则从 timestamp-expression 中减去相应的周数。如果提供 integer-expression,则必须将 timestamp-expression 显式地转换为 DATE 或 TIMESTAMP。
INTEGER,使用语法 1 或语法 2。
TIMESTAMP,使用语法 3。
如果给定一个单独的日期(语法 1),WEEKS 函数将返回自 0000-02-29 后的周数。
如果给定两个日期(语法 2),WEEKS 函数将返回两者之间的周数。WEEKS 函数与 DATEDIFF 函数类似,但它们用于计算两个不同日期之间周数的方法不同,而且可以返回不同的结果。WEEKS 的返回值的确定方式是,将两个日期间的天数除以七,然后向下舍入。然而,DATEDIFF 在计算时使用的是周边界数。这会导致从两个函数返回的值不同。例如,如果第一个日期为星期五,第二个日期为下一个星期一,则 WEEKS 函数会返回差值 0,DATEDIFF 函数会返回差值 1。当两种方法相对彼此而言均无优势时,则在 WEEKS 和 DATEDIFF 之间进行选择时应考虑到差值。
有关 DATEDIFF 函数的详细信息,请参见DATEDIFF 函数 [Date and time]。
如果给定一个日期和一个整数(语法 3),WEEKS 函数会将该整周数与 timestamp-expression 相加。如果使用语法 3,必须将 timestamp-expression 显式地转换为 TIME、DATE 或 TIMESTAMP 数据类型。如果 timestamp-expression 为 TIME 值,则会假定为当前日期。不使用语法 3,请使用 DATEADD 函数。
有关 DATEADD 函数的详细信息,请参见DATEADD 函数 [Date and time]。
有关转换数据类型的信息,请参见CAST 函数 [Data type conversion]。
SQL/2008 服务商扩充。
以下语句返回值 8,表示 2008-09-13 10:07:12 比 2008-07-13 06:07:12 晚八周。
SELECT WEEKS( '2008-07-13 06:07:12', '2008-09-13 10:07:12' );
以下语句返回值 104792,表示该日期比 0000-02-29 晚 104792 周。
SELECT WEEKS( '2008-07-13 06:07:12' );
以下语句返回 TIMESTAMP 值 2008-06-16 21:05:07.0,表示该日期和时间比 2008-05-12 21:05:07 晚五周。
SELECT WEEKS( CAST( '2008-05-12 21:05:07' AS TIMESTAMP ), 5);