在使用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的各个参数就可以了。