是否有任何棘手的方法来格式化秒,如小时:分钟:秒。例如,
3660
秒将显示为
01h 01m 00s
或者
01:01:00
我知道这样做的标准方法:
- 将所有秒除以 3600 得到小时
- 将剩下的秒数除以 60 得到分钟
- 剩下的就是秒
我遇到了以下问题:
我无法创建执行此操作的单独函数。
我的代码使用了几个 CTE。因此,只能使用 CTE 声明变量。
- 我无法使用标准解决方案,因为我的结果会比一天大 -如何使用 T-SQL 将秒转换为 HH:MM:SS
SELECT 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 |
---|
01:01:00 |
01:03:20 |
01:10:00 |
00:10:00 |
00:01:00 |
00:00:30 |
24:00:00 |
24:06:40 |
试试这个:
SELECT CONVERT(TIME(0), DATEADD(SS,***seconds***,0),108) as 'FieldName'
将返回HH:MM:SS
例子:
46800 秒 = 下午 1:00
字段名 = 13:00:00
希望这可以帮助。
SELECT cast(seconds/3600 as varchar(6)) +
right(cast(dateadd(second, seconds,0) as time(0)), 6)
FROM <yourtable>