如何将SQL中的秒数转换为人类可读的持续时间?

Mne*_*nth 2 sql int duration

在SQL数据库中,我做了一些选择,以秒为单位获得持续时间(作为两个日期之间的减法的结果).但我希望将这个结果格式化为人类可读的形式,如'hh:mm'或'dd:hh'.这可能在SQL中,我怎么能意识到这一点?

小智 5

在SQL 2005中,您可以使用以下内容:

    select convert(varchar(8), dateadd(second, [SecondsColumn], 0),  108)
Run Code Online (Sandbox Code Playgroud)

首先将秒转换为1900-01-01之后的日期,然后得到hh:mm:ss部分.

如果列超过24小时,这将翻转,如果你想要几天,那么在这种情况下小时只需执行以下操作:

case when SecondsColumn> (24*60*60) 
        then 
            cast(datepart(day,datediff(dd, 0, dateadd(second, SecondsColumn, 0))) as varchar(4))
        +   'd' + convert(varchar(2), dateadd(second, SecondsColumn, 0), 108) 
    else
            convert(varchar(8), dateadd(second, SecondsColumn, 0), 108) 
    end
Run Code Online (Sandbox Code Playgroud)