对于t,我试图获得运行sql语句的时间差:
declare @t1 datetime
declare @t2 datetime
declare @msg varchar(12)
set @t1 = getdate()
--run sql statements
....
set @t2 = getdate()
set @msg = Convert(varchar(12), Datediff(minute, @t1, @t2))
Print 'Processing time is %1!' , @msgsql语句花费的时间超过1μis,但是输出的打印时间是0。
如何获得时差?或者,怎样才能在分+秒之间得到时差?
发布于 2014-05-29 15:47:23
Datediff返回跨越两个日期时间的“边界”数(即返回一个整数)。如果您的开始和结束时间大于1分钟,但间隔不到2分钟,Datediff(分钟,开始,结束)将返回1,因为它们之间没有完整的2分钟。您需要做的是获取两个日期时间之间的秒数,然后计算分钟数。
declare @t1 datetime
declare @t2 datetime
declare @seconds int
set @t1 = getdate()
--run sql statements
--....
set @t2 = getdate()
set @seconds = Datediff(S, @t1, @t2)
Print 'Processing time is ' +
convert(varchar, @seconds/60) + ':' +
convert(varchar, @seconds % 60)我使用@seconds/60来获取整分钟的时间,使用@seconds % 60获取剩余的秒数。如果你需要更高的精度,你可以用毫秒做同样的事情。
https://stackoverflow.com/questions/23936907
复制相似问题