将数字(十进制格式)转换为时间

时间:2017-11-07 17:06:08

标签: sql sql-server sql-server-2016

我有一个CPTIME列,数据类型为decimal(6,0)。当前值看起来像165750.我需要它以时间格式16:57:50。有没有办法做到这一点?我看到过一些类似的问题,但那是十进制小时/分钟(即16.57为16:57),这里不适用。

1 个答案:

答案 0 :(得分:1)

您可以将其转换为CHAR,然后添加冒号,最后将其转换回TIME,如下所示:

SELECT (STUFF(STUFF(RIGHT('000000' + CAST(135 AS VARCHAR(6)), 6), 5, 0, ':'), 3, 0, ':'))

如果您的数字少于6位,则“000000”连接将填入零,然后我们选择最右边的6位数字。