T-SQL格式化计算列为时间

htm*_*11h 5 t-sql sql-server datetime

可以使用大师的帮助.尝试计算两个日期时间值之间的时间并在T-SQL查询中显示为时间...

SELECT arrivalDate - departDate AS timeToComplete
Run Code Online (Sandbox Code Playgroud)

这应该总是少于24小时.但谁知道用户实际输入了什么?

我一直在尝试这样的事情,没有任何结果.

SELECT  
   CAST(time(7), 
   CONVERT(datetime, arrivalDate - departDate) AS timeToComplete) AS newTime, 
Run Code Online (Sandbox Code Playgroud)

而不是以结果1:23:41为例,有没有办法显示如下结果:

0D, 1H, 23M, 33S. 
Run Code Online (Sandbox Code Playgroud)

感谢您的任何指导.

Rom*_*nyi 2

只是为了与众不同:)尝试使用这种方法:

声明@date1日期时间;声明@date2日期时间;

set @date1 = '2012-05-01 12:00:000'
set @date2 = '2012-05-01 18:00:000'


    SELECT 
    STUFF(
        STUFF(
            STUFF(
                RIGHT(CONVERT(NVARCHAR(19), CONVERT(DATETIME, DATEADD(second, DATEDIFF(S, @date1, @date2), '20000101')), 120), 11), 
                3, 1, 'D, '), 
            8, 1, 'H, '), 
        13, 1, 'M, ') + ' S';
Run Code Online (Sandbox Code Playgroud)