计算两个时间差

SQL内置函数

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

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

 

CREATE   function  getbetweentime( @rq1   datetime , @rq2   datetime )
returns   varchar ( 20 as  
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 < 3600 and  ( @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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值