-- =============================================
-- 程序名:GetMCBTimeDifferenceByDateTime
-- 创建时间: 2017-07-18
-- 作者:pxq
-- 功能:计算两时间的时间差(小时:分钟:秒)
-- 实例:select [dbo].GetMCBTimeDifferenceByDateTime_New('2018-01-01 10:59:30','2018-01-02 12:30:20') --25:30:50
-- =============================================
CREATE FUNCTION [dbo].[GetMCBTimeDifferenceByDateTime_New]
(
@MCBSheetDateTime datetime, --时间
@NowTime datetime --比较时间
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
--定义需要返回的字段名
declare @ReturnName nvarchar(max)
declare @day int
declare @hour int
declare @min int
declare @sec int
declare @alls int
set @alls=datediff(s,@MCBSheetDateTime,@NowTime) --时间与时间之间的差
set @day=@alls/86400
set @hour=(@alls-@day*86400)/3600
set @min=(@alls-@day*86400-@hour*3600)/60
set @sec=@alls-@day*86400-@hour*3600-@min*60
set @ReturnName=(select (case when convert(nvarchar(10), (@day*24+@hour)) is null then '' else convert(nvarchar(10), (@day*24+@hour)) end ))
set @hour=@day*24+@hour;
--返回天时分秒
select @ReturnName=(case when len(@hour)>1 then (cast(@hour as varchar(5))) else ('0'+cast(@hour as varchar(5))) end) +':'+
(case when len (@min)>1 then CAST(@min as varchar(2)) else ('0'+CAST(@min as varchar(2))) end)
+':'+
(case when len (@sec)>1 then CAST(@sec as varchar(2)) else ('0'+CAST(@sec as varchar(2))) end)
+''
RETURN @ReturnName
END
计算两时间的时间差(小时:分钟:秒)