亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用T-SQL將Seconds轉換為HH:MM:SS

如何使用T-SQL將Seconds轉換為HH:MM:SS

子衿沉夜 2019-10-30 10:27:11
情況是您有一個以秒(XXX.XX)為單位的值,并且您想使用T-SQL轉換為HH:MM:SS。例:121.25 s變為00:02:01.25
查看完整描述

3 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

您要乘以毫秒,因為小數部分將被丟棄。


SELECT DATEADD(ms, 121.25 * 1000, 0)

如果您希望不帶日期部分,可以使用樣式為114的CONVERT


SELECT CONVERT(varchar, DATEADD(ms, 121.25 * 1000, 0), 114)


查看完整回答
反對 回復 2019-10-30
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

如果您的時間量超過24小時,則DATEADD和CONVERT方法將無法正確處理。


SELECT CONVERT(varchar, DATEADD(ms, 24*60*60 * 1000, 0), 114)

00:00:00:000

以下功能將處理超過24小時的時間(最大35,791,394小時)。


create function [dbo].[ConvertTimeToHHMMSS]

(

    @time decimal(28,3), 

    @unit varchar(20)

)

returns varchar(20)

as

begin


    declare @seconds decimal(18,3), @minutes int, @hours int;


    if(@unit = 'hour' or @unit = 'hh' )

        set @seconds = @time * 60 * 60;

    else if(@unit = 'minute' or @unit = 'mi' or @unit = 'n')

        set @seconds = @time * 60;

    else if(@unit = 'second' or @unit = 'ss' or @unit = 's')

        set @seconds = @time;

    else set @seconds = 0; -- unknown time units


    set @hours = convert(int, @seconds /60 / 60);

    set @minutes = convert(int, (@seconds / 60) - (@hours * 60 ));

    set @seconds = @seconds % 60;


    return 

        convert(varchar(9), convert(int, @hours)) + ':' +

        right('00' + convert(varchar(2), convert(int, @minutes)), 2) + ':' +

        right('00' + convert(varchar(6), @seconds), 6)


end

用法:


select dbo.ConvertTimeToHHMMSS(123, 's')

select dbo.ConvertTimeToHHMMSS(96.999, 'mi')

select dbo.ConvertTimeToHHMMSS(35791394.999, 'hh')

0:02:03.000

1:36:59.940

35791394:59:56.400


查看完整回答
反對 回復 2019-10-30
  • 3 回答
  • 0 關注
  • 760 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號