Efficient way to convert second to minute and seconds in sql server 2005

后端 未结 3 788
無奈伤痛
無奈伤痛 2020-12-10 02:14

Suppose I have 90 seconds. If I want to display the result in terms of minutes and second, I do it by using

select Time= \'0\' + CAST( 90/60 as varchar(2)) +         


        
3条回答
  •  有刺的猬
    2020-12-10 02:55

    One of the first things I do on a fresh SQL database is add a Timespan function similar to this one (although I tend to include days and milliseconds as well):

    CREATE FUNCTION dbo.TimeSpan
    (
        @Hours int,
        @Minutes int,
        @Seconds int
    )
    RETURNS datetime
    AS BEGIN
        RETURN DATEADD(SS, @Hours * 3600 + @Minutes * 60 + @Seconds, 0)
    END
    

    Then you can format this however you want:

    SELECT SUBSTRING(CONVERT(char(8), dbo.TimeSpan(0, 0, 90), 108), 4, 5)
    

    It might look more complicated at first, but the ability to reuse the TimeSpan function comes in very handy over time. For me it feels like a hack to always be writing DATEADD calls against 0 or '1753-01-01'.

提交回复
热议问题