在使用SQL語句限制條件時,使用時間限制,很常用,也有很多地方需要統計一些數據而要使用時間限制語句。時間限制語句有很多種寫法。但基本的還是圍繞着DateTime,DATEDIFF,GetDate()等。其實,差不多任何的時間限制,都能使用DATEDIFF來完成。所以,下面先介紹一下DATEDIFF.
語法:DATEDIFF ( datepart , startdate , enddate )
返回指定的 startdate 和 enddate 之間所跨的指定 datepart 邊界的計數(帶符號的整數)。
參數
datepart 是指定所跨邊界類型的 startdate 和 enddate 的一部分。 下表列出了所有有效的 datepart 參數。 用戶定義的變量等效項是無效的。有year,month,day,hour,minute,second.week等。
startdate 是一個表達式,可以解析爲 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值。date 可以是表達式、列表達式、用戶定義的變量或字符串文字。從 enddate 減去 startdate。返回類型爲:int.如:SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999'
, '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999'
, '2006-01-01 00:00:00.0000000');
DATEDIFF(day,startdate,enddate)>30天,選擇30天之前的記錄。
DATEDIFF(Month,startdate,enddate)=0.選擇同月內的記錄。DATEDIFF(Month,Article_Check_Time,GetDate())=0。
DateTime自定義時間,重構構造函數DateTime time = new DateTime(2009,08,06,10,12,22).定義時間只能定義靜態時間。不能動態的。不能如DateTime(year,month,1,10,20,11).不能這樣使用。
對於SQL語句中的時間限制,用DATEDIFF就能實現了,用好DATEDIFF的各個參數就可以了。