SQL SERVER DateDiff、DATEADDメソッドの使い方

3188 ワード

1、DATEDIFF
 
構文の簡単な説明:DATEDIFF(date-part,date-expression 1,date-expression 2)
機能:2つの日付間の間隔を返します.パラメータの簡単な説明:date-part:year|quarter|month|week|day|hour|minute|second|millisecond date-partその間隔を計算する日付部分を指定します.date-expression 1間隔の開始日.この値をdate-expression 2から減算し、2つのパラメータ間のdate-partsの数値を返します.date-expression 2の間隔の終了日.この値からDate-expression 1を減算し、2つのパラメータ間の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 @t WHERE 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.000 7 bb 1989-12-11 00:00:00.000 --*/ -- 2003-12-05 2006-02-28 SET @dt2='2006-02-28' SELECT * FROM @t WHERE 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.000 2 bb 1996-02-29 00:00:00.000 7 bb 1989-12-11 00:00:00.000 --*/