時間差-スカラー値関数を計算する

1. 2つの時間の時間差を計算します(時間:分:秒)。

- ============================================= 
- プログラム名前:GetMCBTimeDifferenceByDateTime 
- 時間を作成:2017年7月18日
- 著者:PXQ 
- 機能:2回(時間:分:秒)間の計算時間差
- 例:[DBO]を選択し.GetMCBTimeDifferenceByDateTime_New( ' 2018-01- 01 10:59:30 '、' 2018-01-02 12:30:20 ')--25:30:50 
- ==================== ========================= 
CREATE  関数 [ DBO ][ GetMCBTimeDifferenceByDateTime_New ]   
    @MCBSheetDateTime  日時- 時間
    @NowTimeの 日時 - 比較時間
RETURNS  NVARCHARMAX AS 
BEGIN 
    - 定義されたフィールド名のニーズリターンへ
    のDECLARE  @ReturnNameの データ型はnvarchar最大

     の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   
    セット @Min =@alls - @day * 86400 - @hour * 3600/ 60   
    セット @sec = @alls - @day * 86400 - @hour * 3600 - @min * 60   
    セット @ReturnName =選択ケースの とき 変換nvarchar10)、(@day * 24 + @hour)) null  、次に ''  else  convertnvarchar10)、(@day * 24 + @hour))end ))
     set  @hour = @day * 24 + @hour ;
    - 返回天时分秒
    選択 @ReturnName =場合 でlen@hour> 1  thencast@hour  as  varchar5)))else' 0 ' + cast@hour  as  varchar5)))end+ ' ' + case  when  len@min> 1  then  CAST@min  as  varchar2))else' 0 ' +CAST@min  as  varchar2)))end + ' ' + case  when  len@sec> 1  then  CAST@sec  as  varchar2))else' 0 ' + CAST@sec  as  varchar2)))end + '' 
    RETURN  @ReturnName 
END

2つの時間の時差を計算します(時:分:秒)。
現在との時差を計算する(時:分:秒)

 

2.現在との時差(分)を計算する

- ============================================= 
- プログラム名前:GetTimeDifferenceByDateTime 
- 時間の作成:2017年7月18日を
- 著者:PXQ 
- 機能:現在の時間差(分)までの距離を計算する
- 例:.GetTimeDifferenceByDateTime [DBO]を選択(( 「2019年2月27日10を選択:59 '))
-- 29 - ============================================= ===== 
CREATE  関数 [ DBO ][ GetTimeDifferenceByDateTime ]   
    @datetime  日時 - 時間
RETURNS  NVARCHARMAX AS 
BEGIN 
    -返されるフィールド名を定義します
    declare  @ReturnName  nvarcharmax 

     declare  @day  int   
    declare  @hour  int   
    declare  @min  int   
    declare  @sec  int   
    declare  @alls  int   
    set  @alls = datediff(s、@DateTimeGETDATE())    - そして、時間との時間差
    のSET  @day = @alls / 86400   
    SETの @hour =@alls - @day * 86400/ 3600   
    セット @Min =@alls - @day * 86400 - @hour * 3600/ 60   
    セット @sec = @alls - @day * 86400 - @hour * 3600 - @Min * 60   
    - 返回分钟
    セット @ReturnName =selectcase  when  convertnvarchar50)、((@day * 24 +@hour* 60+ @min null  、次に ''  else  convertnvarchar50)、((@day * 24 + @hour* 60+ @minend ))

    RETURN  @ReturnName 

END
現在との時差を計算(分)

 

おすすめ

転載: www.cnblogs.com/panxueqin/p/12736790.html