Select datediff(year,in_time,out_time)
Select datediff(month,in_time,out_time)
Select datediff(day,in_time,out_time)
Select datediff(hour,in_time,out_time)
Select datediff(minute,in_time,out_time)
Select datediff(second,in_time,out_time)
...
Select datediff(month,in_time,out_time)
Select datediff(day,in_time,out_time)
Select datediff(hour,in_time,out_time)
Select datediff(minute,in_time,out_time)
Select datediff(second,in_time,out_time)
...
declare @a datetime,@b datetime
select @a='2003.08.03 12:03:03' ,@b='2003.08.01 10:02:01'select datediff(mi,@b,@a) 分钟
/*
日期相减的存储过程
*/
--创建日期相减的存储过程
create procedure sdatediff
@t1 datetime
,@t2 datetime
,@re varchar(20) output
as
declare @sql nvarchar(1000),@str varchar(20)
select @sql='select @re=',@str='yy.mm.dd hh:mi:ss '
while @str<>''
select @re='datepart('+left(@str,2)
,@sql=@sql+'+right(100+'
+@re+','''+convert(varchar(20),@t1,120)
+''')-'+@re+','''+convert(varchar(20),@t2,120)
+'''),2)+'''+substring(@str,3,1)+''''
,@str=substring(@str,4,20)exec sp_executesql @sql,N'@re varchar(17) output',@re output
go
--调用存储过程
declare @t1 datetime,@t2 datetime,@re varchar(20)
select @t1='2003.08.03 12:03:03',@t2='2003.08.01 10:02:01'exec sdatediff @t1,@t2,@re out
print @re--删除存储过程
drop proc sdatediff