代码之家  ›  专栏  ›  技术社区  ›  Batakj

SQL Server中是否有将数字转换为时间格式的函数?

  •  0
  • Batakj  · 技术社区  · 16 年前

    我得到的是一个完整的数字。例如:62、103、184、4543。我想把它转换成时间格式。例如,如果是62,则格式为“00:01:02”。我正在寻找一个可以解决我的问题的函数。SQL Server中是否有将数字转换为时间格式的函数?

    2 回复  |  直到 16 年前
        1
  •  1
  •   SPE109    16 年前
    declare @d datetime
    Set @d = Convert(datetime, '20010101',112 )
    
    Set @d = dateadd(s, 62, @d)  --add 62 seconds to base date
    
    Select convert(varchar,@D,108)
    
        2
  •  1
  •   David M    16 年前

    嗯,你有两个选择。你可以自己做60的除法,就像这样:

    SELECT  RIGHT('0' + CAST(@seconds / 3600 AS varchar), 2) + ':' +
            RIGHT('0' + CAST((@seconds / 60) % 60 AS varchar), 2) + ':' +
            RIGHT('0' + CAST(@seconds % 60 AS varchar), 2)
    

    或者你可以做一些与日期时间相关的组合:

    SELECT  CONVERT(varchar,
                    DATEADD(second, @seconds, CAST('1-Jan-2000' AS datetime)),
                    8)
    

    格式8是hh:mi:ss自 here .

    推荐文章