• 函数时间转换


    USE [ChiefmesNEW]
    GO
    /****** Object: UserDefinedFunction [dbo].[FN_GetTime] Script Date: 01/15/2016 09:22:37 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    /***********************************************
    -- creator: lxf
    -- create date: 2015.04.11
    -- Description: 获取两个时间之间的天时分
    ***********************************************/
    ALTER FUNCTION [dbo].[FN_GetTime](
    @BeginDate varchar(19),
    @EndDate varchar(19)
    )
    RETURNS varchar(20)
    AS
    BEGIN
    declare @DMtime int
    declare @D varchar(10)
    declare @H varchar(10)
    declare @M varchar(10)
    declare @S varchar(10)
    set @DMtime=DATEDIFF(SECOND,@BeginDate,@EndDate)
    --获取两个时间段的秒的相差值
    set @D=@DMtime/(3600*24)--天数
    set @H=(@DMtime-@D*3600*24)/3600--小时
    set @M=(@DMtime-@D*3600*24-@H*3600)/60--分钟
    set @S=@DMtime-@D*3600*24-@H*3600-@M*60--秒
    return @D+'天'+@H+'小时'+@M+'分钟'
    END
    ----------------------------------------------------------------------------



    Alter Function [dbo].[FN_GetTime1]
    (
    @BeginDate nvarchar(30),
    @EndDate nvarchar(30)
    )
    Returns varchar(100)
    as
    begin
    declare @DMtime int
    declare @DHMS varchar(100)

    if(@BeginDate<>'')
    set @BeginDate=convert(varchar(100),@BeginDate,21)
    else
    return ''
    if(@EndDate<>'')
    set @EndDate=convert(varchar(100),@EndDate,21)
    else
    return ''

    set @DMtime=dateDiff(second,@BeginDate,@EndDate)
    if(@DMtime>=86400)--大于一天
    begin
    set @DHMS=convert(varchar(10),CONVERT(decimal(18,2),CONVERT(float,@DMtime)/CONVERT(float,3600*24)))+'天'--1.00天
    end
    else if(@DMtime>=3600)--小于一天 大于一小时
    begin
    set @DHMS=convert(varchar(10),CONVERT(decimal(18,2),CONVERT(float,@DMtime)/CONVERT(float,3600)))+'小时'
    end
    else if(@DMtime>=60)--600s 分钟
    begin
    set @DHMS=convert(varchar(10),CONVERT(decimal(18,2),CONVERT(float,@DMtime)/CONVERT(float,60)))+'分钟'
    end
    else--秒
    set @DHMS=convert(varchar(10),@DMtime)+'秒'

    return @DHMS

    end
    GO

    select CONVERT(decimal(18,2),CONVERT(float,86400)/CONVERT(float,3600*24))
    select CONVERT(decimal(18,2),CONVERT(float,600)/CONVERT(float,60))
    select [dbo].[FN_GetTime1]('2015-11-19 18:00:19.000','2015-11-19 18:01:22.000')
    select [dbo].[FN_GetTime1]('','')
    select datediff(SECOND,'2015-11-19 18:00:19.000','2015-11-19 19:01:22.000')

  • 相关阅读:
    软件测试基本功之——概念篇
    bug描述注意点
    软件测试模型汇总-V模型,W模型,X模型,H模型
    软件测试分类(自动化测试暂不描述)
    黑盒测试用例设计方法&理论结合实际 -> 场景法
    前端学习(36)~js学习(十三):this
    前端学习(35)~js学习(十二):预编译
    前端学习(34)~js学习(十一):作用域和变量提升
    前端学习(33)~js学习(十):函数
    前端学习(32)~js学习(九):对象简介和对象的基本操作
  • 原文地址:https://www.cnblogs.com/chengjun/p/5132356.html
Copyright © 2020-2023  润新知