有关datediff的相应信息,见如下:
DATEDIFF (datepart ,startdate ,enddate )
- datepart
-
是指定所跨边界类型的 startdate 和 enddate 的一部分。下表列出了所有有效的 datepart 参数。用户定义的变量等效项是无效的。
datepart
缩写
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
- startdate
-
是一个表达式,可以解析为 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值。date 可以是表达式、列表达式、用户定义的变量或字符串文字。从 enddate 减去 startdate。
为避免不确定性,请使用四位数年份。有关两位数年份的信息,请参阅two digit year cutoff 选项。
- enddate
-
请参阅 startdate。
1.返回相差两个季度时间得记录
代码如下:需要时,可以将时间字段改为数据库中相应的字段
View Code
1 declare @startDateTime datetime
2 declare @endDateTime datetime
3 set @startDateTime='2011-01-01'
4 set @endDateTime='2011-07-10'
5 select DATEDIFF(QQ,@startDateTime,@endDateTime)
2 declare @endDateTime datetime
3 set @startDateTime='2011-01-01'
4 set @endDateTime='2011-07-10'
5 select DATEDIFF(QQ,@startDateTime,@endDateTime)
2.搜索最近3个月的订单。
代码如下:
View Code
declare @startDateTime datetime
declare @endDateTime datetime
set @startDateTime='2011-05-01'
set @endDateTime=GETDATE()
select DATEDIFF(m,@startDateTime,@endDateTime)
declare @endDateTime datetime
set @startDateTime='2011-05-01'
set @endDateTime=GETDATE()
select DATEDIFF(m,@startDateTime,@endDateTime)
3.返回第一单订单时间到最近的一单订单时间的 天数差。
select DATEDIFF(DAY,(select MIN(insDT) from OP_Order),(select MAX(insDT) from OP_Order))
4.使用GETDATE()函数来获得当前时间,
若使用GetDate()+1,结果是在现在的时间上多添加一天。
如:
GetDate(): 2011-08-13 13:53:09.243
GetDate()+1 : 2011-08-14 13:53:09.243
如上,直接在时间的日上加1.