首页 > 其他 > 详细

计算时间差-标量值函数

时间:2020-04-20 13:55:29      阅读:53      评论:0      收藏:0      [点我收藏+]

一.计算两时间的时间差(小时:分钟:秒)

技术分享图片
-- =============================================
-- 程序名: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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!