将INT转换为时间

时间:2012-11-05 15:52:13

标签: sql sql-server

我在sql中有一个INT列,我必须将其转换为时间。

我试过

         CONVERT (VARCHAR, columnA / 600000)
   + ':'
   + RIGHT ('00' + CONVERT (VARCHAR, c_columnA % 60), 2)

但这不是结果。有什么想法可以如何投放数据?

这是一个数据样本:

INT |TIME
4680001|13:00
4680001|13:00
4596001|12:45
3846001|10:41
4320001|12:00

1 个答案:

答案 0 :(得分:4)

它已经在评论中了,但我会将其作为答案发布:

如果忽略尾随1,则该值可能是自午夜以来的百分之一秒 -

e.g。 select dateadd(ms,384600 * 100,'19000101')提供19000101 10:41

或作为查询:

DECLARE @t TABLE
(i INT, t VARCHAR(5))
INSERT @t (i,t)
VALUES (4680001,'13:00'),
(4680001,'13:00'),
(4596001,'12:45'),
(3846001,'10:41'),
(4320001,'12:00')

SELECT DATEADD(s,i/100,'19000101'), t
FROM @t