SQL - 秒,日,小时,分钟,秒

Muh*_*san 2 t-sql sql-server

可能重复:
在sql server 2005中将第二个转换为分钟和秒的有效方法

我有一个查询,需要以日,小时,分钟,秒格式返回第二个.

下面的代码在不到一天的时候工作正常,但是当秒的值大于一天时,它不起作用

PRINT Convert(VarChar, DateAdd(S, 86400, 0), 108)
Run Code Online (Sandbox Code Playgroud)

86400正好是一天,它返回00:00:00

有人可以修改它并向我显示这样的结果

1:00:00:00.
Run Code Online (Sandbox Code Playgroud)

谢谢

Tar*_*ryn 7

这个怎么样:

declare @days int, 
        @dt1 smalldatetime = '2012-03-25 03:24:16', 
        @dt2 smalldatetime = getdate()

set @days = datediff (s, @dt1, @dt2)


SELECT convert(char(10), @days / (60 * 60 * 24)) + ':'
+ convert(char(10), dateadd(s, @days, convert(datetime2, '0001-01-01')), 108)

Result -- 170:20:40:00
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo


Joe*_*eph 5

试试这个:

declare @seconds int=87500;

select cast(@seconds/86400 as varchar(50))+':'+
  Convert(VarChar, DateAdd(S, @seconds, 0), 108) 
Run Code Online (Sandbox Code Playgroud)

结果:

1:00:18:20
Run Code Online (Sandbox Code Playgroud)