如 27600 秒 转成时间是 07:40 , 怎么样用一条 Select语句得出结果 ?

解决方案 »

  1.   

    Select right('0'+cast(27601 /3600 as varchar),2)+':'+right('0'+cast((27601 %3600) /60 as varchar),2)+':'+right('0'+cast((27601 %3600) % 60 as varchar),2)--结果07:40:01
      

  2.   

    SELECT   RIGHT('0' +  CONVERT(VARCHAR,27600/3600),2)+
             ':' +
             RIGHT('0' + CONVERT(VARCHAR,(27600%3600)/60),2)
      

  3.   

    declare @invalue INT
    set @invalue=27600
    select  cast(@invalue/3600 as varchar)+':'
           +cast((@invalue-(@invalue/3600)*3600)/60 as varchar)+':'
           +cast((@invalue-(@invalue/3600)*3600)-((@invalue-(@invalue/3600)*3600)/60)*60 as varchar)
    -----
    7:40:0
    ---------------------declare @invalue INT
    set @invalue=27600
    select  cast(@invalue/3600 as varchar)+':'
           +cast((@invalue-(@invalue/3600)*3600)/60 as varchar)+':'
           +cast((@invalue-(@invalue/3600)*3600)-((@invalue-(@invalue/3600)*3600)/60)*60 as varchar)
    -------------------
    2:6:40
      

  4.   

    declare @invalue INT
    set @invalue=7600
    select  cast(@invalue/3600 as varchar)+':'
           +cast((@invalue-(@invalue/3600)*3600)/60 as varchar)+':'
           +cast((@invalue-(@invalue/3600)*3600)-((@invalue-(@invalue/3600)*3600)/60)*60 as varchar)
    -------------------
    2:6:40
      

  5.   

    (case when (AlarmDelay/3600)>0 then rtrim(AlarmDelay/3600)+'':'' else ''00:'' end)
                            +(case when (AlarmDelay%3600)/60>0 then rtrim((AlarmDelay%3600)/60)+'':'' else ''00:'' end)
    +(case when (AlarmDelay%60)>0 then rtrim(AlarmDelay%60) else ''00'' end)