-- ============================================= -- 程序名: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 计算两时间的时间差(小时:分钟:秒)
-- ============================================= -- 程序名:GetTimeDifferenceByDateTime -- 创建时间: 2017-07-18 -- 作者:pxq -- 功能:计算距离现在的时间差(分钟) -- 实例:select [dbo].GetTimeDifferenceByDateTime((select ‘2019-02-27 10:59‘)) --29 -- ============================================= CREATE FUNCTION [dbo].[GetTimeDifferenceByDateTime] ( @DateTime 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,@DateTime,GETDATE()) --时间与时间之间的差 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(50), ((@day*24+@hour)*60)+@min) is null then ‘‘ else convert(nvarchar(50), ((@day*24+@hour)*60)+@min) end )) RETURN @ReturnName END
原文:https://www.cnblogs.com/panxueqin/p/12736790.html