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 函数 (A-D)

 

DATEDIFF 函数 [Date and time]

返回两个日期之间的间隔。

语法
DATEDIFF( date-part, date-expression-1, date-expression-2 )
date-part :
year 
| quarter 
| month 
| week 
| day 
| dayofyear 
| hour
| minute 
| second 
| millisecond
参数
  • date-part   指定要测量间隔的日期部分。

    选择上面列出的日期对象之一。有关日期部分的完整列表,请参见日期部分

  • date-expression-1   间隔的起始日期。从 date-expression-2 中减去此值,以返回这两个参数之间 date-part 的数量。

  • date-expression-2   间隔的结束日期。从此值中减去 Date-expression-1,以返回这两个参数之间 date-part 的数量。

返回值

INT

注释

此函数计算两个指定日期之间日期部分的数量。结果是等于 date2 与 date1 之差的有符号整数值(以日期部分为单位)。

当结果不是日期部分的偶数倍时,将会截断而不是舍入 DATEDIFF 函数的结果。

当使用 day 作为日期部分时,DATEDIFF 函数返回两个指定时间之间(包括第二个日期但不包括第一个日期)的午夜数。

当使用 month 作为日期部分时,DATEDIFF 函数返回两个日期之间(包括第二个日期但不包括第一个日期)出现的月第一天的个数。

当使用 week 作为日期部分时,DATEDIFF 函数返回两个日期之间(包括第二个日期但不包括第一个日期)的星期日的个数。

对于更小的时间单位存在溢出值:

  • millisecond   24 天

  • seconds   68 年

  • minute   4083 年

  • others   没有溢出限制

如果超出这些限制,此函数将返回溢出错误。

标准和兼容性
  • SQL/2003   Transact-SQL 扩充。

示例

以下语句返回 1。

SELECT DATEDIFF( hour, '4:00AM', '5:50AM' );

以下语句返回 102。

SELECT DATEDIFF( month, '1987/05/02', '1995/11/15' );

以下语句返回 0。

SELECT DATEDIFF( day, '00:00', '23:59' );

以下语句返回 4。

SELECT DATEDIFF( day,
   '1999/07/19 00:00',
   '1999/07/23 23:59' );

以下语句返回 0。

SELECT DATEDIFF( month, '1999/07/19', '1999/07/23' );

以下语句返回 1。

SELECT DATEDIFF( month, '1999/07/19', '1999/08/23' );