TT-SQL格式为HH:MM:SS时间



是否有任何棘手的方法来格式化几秒钟,例如小时:分钟:秒。例如,

3660

秒将显示为

01H 01M 00s

01:01:00

我知道这样做的标准方式:

  1. 将3600的所有秒钟分开以获取时间
  2. 将其余几秒钟分为60,以获取分钟
  3. 其余的是秒

我遇到了以下问题:

  1. 我无法创建执行此操作的单独函数。

  2. 我的代码正在使用多个CTE。因此,可以声明变量仅使用CTE。

  3. 我无法使用标准解决方案,因为我会有结果比一天大 - 如何使用t -sql
  4. 将秒转换为HH:MM:SS
SELECT Seconds, 
    RIGHT('00'+CONVERT(VARCHAR(10),Seconds/3600),2)  
    +':' 
    + RIGHT('00'+CONVERT(VARCHAR(2),(Seconds%3600)/60),2) 
    +':' 
    + RIGHT('00'+CONVERT(VARCHAR(2),Seconds%60),2) AS [HH:MM:SS] 
FROM table1

结果:

HH:MM:SS
3660 01:01:00
3800 01:03:20
4200 01:10:00
600 00:10:00
60 00:01:00
86400 24:00:00
86800 24:06:40

尝试以下:

SELECT CONVERT(TIME(0), DATEADD(SS,***seconds***,0),108) as 'FieldName'

将返回HH:MM:SS

示例:

46800秒= 1:00 pm

fieldname = 13:00:00

希望这会有所帮助。

SELECT cast(seconds/3600 as varchar(6)) +
right(cast(dateadd(second, seconds,0) as time(0)), 6)
FROM <yourtable>

最新更新