从两个给定时间以hh:mm格式获得时间的更好选择

Rav*_*avi 3 sql sql-server time sql-server-2008

select cast(datediff(minute,convert(time,'09:35 AM'),
       convert(time,'07:06 PM'))/60 as varchar)
       +':'+cast(datediff(minute,convert(time,'09:35 AM'),
       convert(time,'07:06 PM'))%60 as varchar)
Run Code Online (Sandbox Code Playgroud)

输出:9:31

我们是否还有其他功能可以缩短上述脚本.另外,我应该怎样做才能获得输出09:31而不是9:31

Eri*_*ric 5

您可以使用CONVERT()样式114来获取HH:mm

SELECT 
    CONVERT(nvarchar(5), 
        -- Get difference of time
        CONVERT(datetime,'07:06 PM') - CONVERT(datetime,'09:35 AM')
        , 114)
Run Code Online (Sandbox Code Playgroud)

SQL小提琴

编辑

作为评论避免日期时算术

SELECT CONVERT(varchar(5), 
        DATEADD(minute, 
            DATEDIFF(minute, convert(time,'09:35 AM'), convert(time,'07:06 PM')) 
        , 0)
    , 114)
Run Code Online (Sandbox Code Playgroud)