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 函数 (E-O)

 

MONTHS 函数 [Date and time]

所指定的信息会更改此函数的行为:

  • 如果提供一个日期,此函数返回自 0000-02 以来的月份数。

    注意

    0000-02 并不表示实际日期,它是日期算法使用的日期。

  • 如果提供两个时间戳,此函数会返回它们之间的整月份数。替代方法为使用 DATEDIFF 函数。

  • 如果提供一个日期和一个整数,此函数会为指定时间戳添加整数分钟数。替代方法为使用 DATEADD 函数。

语法 1:integer
MONTHS( [ datetime-expression, ] datetime-expression )
语法 2:timestamp
MONTHS( datetime-expression, integer-expression )
参数
  • datetime-expression   日期和时间。

  • integer-expression   要添加到 datetime-expression 中的月份数。如果 integer-expression 是负数,则从日期时间值中减去相应的月数。如果提供 integer-expression,则必须将 datetime-expression 显式地转换为日期时间数据类型。

    有关转换数据类型的信息,请参见CAST 函数 [Data type conversion]

返回值

INT

TIMESTAMP

注释

MONTHS 的值是根据两个日期之间每个月的 1 号的数目计算出的。

标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下语句返回值 2,表示第二个日期比第一个日期晚两个月。建议使用第二个示例 (DATEDIFF)。

SELECT MONTHS( '1999-07-13 06:07:12',
   '1999-09-13 10:07:12' );

SELECT DATEDIFF( month,
   '1999-07-13 06:07:12',
   '1999-09-13 10:07:12' );

以下语句返回值 23981。

SELECT MONTHS( '1998-07-13 06:07:12' );

以下语句返回时间戳 1999-10-12 21:05:070.000。建议使用第二个示例 (DATEADD)。

SELECT MONTHS( CAST( '1999-05-12 21:05:07'
AS DATETIME ), 5);

SELECT DATEADD( month, 5, '1999-05-12 21:05:07' );