SQL server, Converting Seconds to Minutes, Hours, Days

后端 未结 5 1293
别那么骄傲
别那么骄傲 2020-12-06 13:20

I have a database column containing an integer value that represents a systems up time in seconds. I\'d really like a query to be able to show me that up time in a easy to r

5条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-06 13:53

    This is another approach using DATEPART():

    DECLARE @S INT = 86472,
            @START DATETIME = CONVERT(DATETIME,0)
    DECLARE @END DATETIME = DATEADD(SECOND,@S, @START)
    
    SELECT CONVERT(VARCHAR(10),DATEPART(DAY,@END)-1) + ' Day(s) ' +
           RIGHT(CONVERT(VARCHAR(10),100+DATEPART(HOUR, @END)),2) + ':' +
           RIGHT(CONVERT(VARCHAR(10),100+DATEPART(MINUTE, @END)),2) + ':' +
           RIGHT(CONVERT(VARCHAR(10),100+DATEPART(SECOND, @END)),2) 
    

    If you don't need to format time part:

    SELECT CONVERT(VARCHAR(10),DATEPART(DAY,@END)-1) + ' Day(s) ' +
           CONVERT(VARCHAR(10),DATEPART(HOUR, @END)) + '  Hour(s)' +
           CONVERT(VARCHAR(10),DATEPART(MINUTE, @END)) + ' Minute(s)' +
           CONVERT(VARCHAR(10),DATEPART(SECOND, @END)) + ' Second(s)'
    

提交回复
热议问题