返回两个日期之间的周数。
WEEKS( [ datetime-expression, ] datetime-expression )
WEEKS( datetime-expression, integer-expression )
datetime-expression 日期和时间。
integer-expression 要添加到 datetime-expression 中的周数。如果 integer-expression 是负数,则从日期时间值中减去相应的周数。如果提供 integer-expression,则必须将 datetime-expression 显式地转换为 DATETIME。
语法 1 返回 INTEGER。
语法 2 返回 TIMESTAMP。
如果给定一个单独的日期(语法 1),WEEKS 函数将返回自 0000-02-29 后的周数。
如果给定两个日期(语法 1),WEEKS 函数将返回两者之间的周数。WEEKS 函数与 DATEDIFF 函数类似,但它们用于计算两个不同日期之间周数的方法不同,而且可以返回不同的结果。WEEKS 的返回值的确定方式是,将两个日期间的天数除以七,然后向下舍入;然而,DATEDIFF 使用的是周边界数。这会导致返回的值不同。例如,如果第一个日期为星期五,第二个日期为下一个星期一,则 WEEKS 函数会返回差值 0,DATEDIFF 函数会返回差值 1。当两种方法相对彼此而言均无优势时,则在 WEEKS 和 DATEDIFF 之间进行选择时应考虑到差值。
有关 DATEDIFF 函数的详细信息,请参见DATEDIFF 函数 [Date and time]。
如果给定一个日期和一个整数(语法 2),WEEKS 函数会将该整周数与指定日期相加。此函数与 DATEADD 函数类似。
有关 DATEADD 函数的详细信息,请参见DATEADD 函数 [Date and time]。
有关转换数据类型的信息,请参见CAST 函数 [Data type conversion]。
SQL/2003 服务商扩充。
以下语句返回值 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' ); |
以下语句返回时间戳 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); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |