2

重複の可能性:
SQLServer2005で秒を分と秒に変換する効率的な方法

日、時、分、秒の形式で秒を返す必要があるクエリがあります。

以下のコードは、1日未満の場合は正常に機能しますが、秒単位の値が1日を超える場合は機能しません。

PRINT Convert(VarChar, DateAdd(S, 86400, 0), 108)

86400は正確に1日で、00:00:00を返します

誰かがそれを変更して、このような結果を見せてもらえますか?

1:00:00:00.

ありがとう

4

2 に答える 2

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

SQL FiddlewithDemoを参照してください

于 2012-09-11T23:55:41.613 に答える
6

これを試して:

declare @seconds int=87500;

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

結果

1:00:18:20
于 2012-09-12T02:02:22.267 に答える