在SQL数据库中,我做了一些选择,以秒为单位获得持续时间(作为两个日期之间的减法的结果).但我希望将这个结果格式化为人类可读的形式,如'hh:mm'或'dd:hh'.这可能在SQL中,我怎么能意识到这一点?
在SQL 2005中,您可以使用以下内容:
select convert(varchar(8), dateadd(second, [SecondsColumn], 0), 108)
首先将秒转换为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