SQL SERVER DateDiff、DATEADD方法的用法

來源:互聯網
上載者:User

1、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   的數值。

 

2、DATEADD

 

  文法
DATEADD(datepart,number,date)
DATEADD() 函數在日期中添加或減去指定的時間間隔。
date參數是合法的日期運算式。
number 是您希望添加的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。
Datepart
參數可以是下列的值: 如:1)select dateadd(dd,2,getdate())在當前日期基礎上添加兩天2)計算一個月的第一天  Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 備忘:函數DATEDIFF(mm,0,getdate())是計算當前日期和"1900-01-01 00:00:00.000"這個日期之間的月數。記住:時期和時間變數和毫秒一樣是從"1900-01-01 00:00:00.000"開始計算的。這就是為什麼你可以在DATEDIFF函數中 指定第一個時間運算式為"0".3)本周的星期一 Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)4)一年的第一天 Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
3、查詢指定日期段內過生日的人員.sql--測試資料DECLARE @t TABLE(ID int,Name varchar(10),Birthday datetime)INSERT @t SELECT 1,'aa','1999-01-01'UNION ALL SELECT 2,'bb','1996-02-29'UNION ALL SELECT 3,'bb','1934-03-01'UNION ALL SELECT 4,'bb','1966-04-01'UNION ALL SELECT 5,'bb','1997-05-01'UNION ALL SELECT 6,'bb','1922-11-21'UNION ALL SELECT 7,'bb','1989-12-11'DECLARE @dt1 datetime,@dt2 datetime--查詢 2003-12-05 至 2004-02-28 生日的記錄SELECT @dt1='2003-12-05',@dt2='2004-02-28'SELECT * FROM @tWHERE DATEADD(Year,DATEDIFF(Year,Birthday,@dt1),Birthday) BETWEEN @dt1 AND @dt2 OR DATEADD(Year,DATEDIFF(Year,Birthday,@dt2),Birthday) BETWEEN @dt1 AND @dt2/*--結果ID Name Birthday---------------- ---------------- --------------------------1 aa 1999-01-01 00:00:00.0007 bb 1989-12-11 00:00:00.000--*/--查詢 2003-12-05 至 2006-02-28 生日的記錄SET @dt2='2006-02-28'SELECT * FROM @tWHERE DATEADD(Year,DATEDIFF(Year,Birthday,@dt1),Birthday) BETWEEN @dt1 AND @dt2 OR DATEADD(Year,DATEDIFF(Year,Birthday,@dt2),Birthday) BETWEEN @dt1 AND @dt2/*--查詢結果ID Name Birthday---------------- ----------------- --------------------------1 aa 1999-01-01 00:00:00.0002 bb 1996-02-29 00:00:00.0007 bb 1989-12-11 00:00:00.000--*/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.