将秒转换为小时和分钟

时间:2014-04-08 14:04:26

标签: sql tsql

我已阅读StackOverflow上关于将整数从秒转换为小时和分钟的所有帖子。
我使用此语句来实现以下结果:

SELECT EventDate, OriginalSeconds, 
LEFT(CONVERT(VARCHAR(5),
DATEADD(second, OriginalSeconds, 0), 108), 5)

我得到以下结果:

EventDate   Seconds     Converted Time  SHOULD BE
01/13/2011  4860001     06:00           13:30
01/13/2011  4860001     06:00           13:30
01/14/2013  3960001     20:00           11:00
02/03/2011  3960001     20:00           11:00

当然,唯一的问题是尚未正确计算转换后的时间列。 (我把正确的结果放在你应该的SHOULD BE列中:) 我想这是因为秒列实际上在最后有无关的数据。但左翼功能不是固定吗?

应该是我想要实现的专栏。我究竟做错了什么?我一直在寻找一个没有功能的简单解决方案,但不确定我能做到这一点。

1 个答案:

答案 0 :(得分:2)

正确的陈述(使用您的代码)是

SELECT EventDate, OriginalSeconds, 
LEFT(CONVERT(VARCHAR(5),
DATEADD(second, OriginalSeconds/100, 0), 108), 5)

这为4860001提供了13:30

您需要告诉我们原始OriginalSeconds的哪一部分 秒。

DATEADD(second, @secs/100, 0)4860001变为1900-01-01 13:30:00.000

CONVERT(VARCHAR(5), 1900-01-01 13:30:00.000, 108)将其变为13:30

Left可能不需要。我刚刚使用9000001进行了尝试,结果为01:00。所以公式包裹到24小时