SQL datediff用法( 返回兩個日期之間的間隔)

iSQlServer發表於2009-11-23

DATEDIFF   函式   [日期和時間]  

  作用    
  返回兩個日期之間的間隔。

   語法  
  DATEDIFF   (   date-part,   date-expression1,   date-expression2   )   
  date-part   :  
  year   |   quarter   |   month   |   week   |   day   |   hour   |   minute   |   second   |   millisecond   
  ( 分別代表:年,季,月,周,天,時,分,秒,毫秒)
  引數   
    date-part    指定要計算其間隔的日期部分。    
    date-expression1   某一間隔的起始日期。從   date-expression2   中減去該值,返回兩個引數之間   date-parts   的數值。 

    date-expression2   某一間隔的結束日期。從該值中減去   Date-expression1,返回兩個引數之間   date-parts   的數值。  

示例:

  下面的語句返回   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'   )  

用法  
  此函式計算兩個指定日期之間日期部分的數值。結果為日期部分中等於(date2   -   date1)的有符號的整數值。

  當結果不是日期部分的偶數倍時,DATEDIFF   將被截斷而不是被舍入。 

  當使用   day   作為日期部分時,DATEDIFF   返回兩個指定的時間之間(包括第二個日期但不包括第一個日期)的午夜數目。

  當使用   month   作為日期部分時,DATEDIFF   返回兩個日期之間(包括第二個日期但不包括第一個日期)月中第一天的數目。

 當使用   week   作為日期部分時,DATEDIFF   返回兩個日期(包括第二個日期但不包括第一個日期)之間星期日的數目。       
  對於更小的時間單位存在溢位值:

  milliseconds           24   天     
  seconds           68   年    
  minutes           4083   年     
  others           沒有溢位限制  

    如果超出這些限制,此函式將返回溢位錯誤。    
    標準和相容性  
  SQL/92           Transact-SQL   擴充套件。  

  SQL/99           Transact-SQL   擴充套件。

  Sybase           與   Adaptive   Server   Enterprise   相容。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-620298/,如需轉載,請註明出處,否則將追究法律責任。

相關文章