将Int转换为时间

时间:2019-10-23 20:23:10

标签: sql sql-server type-conversion

我正在尝试将字段转换为我想要的正确格式。 假定该字段会跟踪时间,但它是在军事时间执行的,并且设置为Int。

有人可以帮我找到解决办法吗

我需要这样做,以便最终跟踪从一种状态到另一种状态所花费的记录的时间。

LTRIM(RIGHT(CONVERT(varchar, [POSTTIME], 100),7)) 

我尝试过,但是没有运气。

这是一个值是什么以及我想将其更改为什么的示例:

945 = 9:45

1516= 3:16

2 个答案:

答案 0 :(得分:1)

timefromparts()怎么样?

select timefromparts(col / 100, col % 100, 0, 0, 0)

Here是db <>小提琴。

注意:时间值15:16:003:16:00不同。您的问题明确表示要转换为“时间”,我将其解释为本机类型。您可以将值从time转换为12小时制。

答案 1 :(得分:1)

请尝试此解决方案,因为@Gordon Linoff提供了您可以使用RUN wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt RUN update-ca-certificates 函数存档要求的解决方案,所以您也可以根据需要获得结果,如下所述。

解决方案1:timefromparts()在一起。

AM/PM

输出

enter image description here

解决方案2:没有DECLARE @IntValue INT = 1516 SELECT CONVERT(VARCHAR, timefromparts(@IntValue / 100, @IntValue % 100, 0, 0, 0), 100) AS Time 的时间。

AM/PM

输出

enter image description here