Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (P-Z)

 

WEEKS 函数 [Date and time]

返回两个日期之间的周数。

语法 1
WEEKS( [ datetime-expression, ] datetime-expression )
语法 2
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);