计算两个时间差

本文介绍了一个自定义的SQL函数getbetweentime,该函数能够计算并返回两个日期之间的小时、分钟和秒数,以解决DATEDIFF函数无法直接返回HH:mm:ss格式的问题。

SQL内置函数

datediff(hh,date1,date2) 用于返回两个日期之间的小时数。不能直接返回  HH:mm:ss 格式的时间差

所以自己写了个计算时间差的函数,请大家多多指教

 

CREATE function getbetweentime(@rq1 datetime,@rq2 datetime)
returns varchar(20as 
begin
declare @sumtime int
declare @timestr varchar(10)
if @rq2>@rq1
set @sumtime=datediff(ss,@rq1,@rq2)
else set @sumtime=99999
if @sumtime=99999
set @timestr='error'  --如果@rq2小于@rq1判断为错误数据(用于特定的时间规则,校验用户的时间输入是否正确)
else if @sumtime>3600
begin 
set @timestr=convert(varchar(10),@sumtime/3600)+':'
set @sumtime=@sumtime%3600
set @timestr=@timestr+convert(varchar(10),@sumtime/60)+':'+convert(varchar(10),@sumtime%60)
end
else if (@sumtime<3600and (@sumtime>60)
set @timestr=convert(varchar(10),@sumtime/60)+':'+convert(varchar(10),@sumtime%60)
else if (@sumtime<60)
set @timestr='0:'+convert(varchar(10),@sumtime)
return @timestr 
end


 

 

转载于:https://www.cnblogs.com/zshsuming/archive/2010/03/08/1680515.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值