我已阅读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列中:) 我想这是因为秒列实际上在最后有无关的数据。但左翼功能不是固定吗?
应该是我想要实现的专栏。我究竟做错了什么?我一直在寻找一个没有功能的简单解决方案,但不确定我能做到这一点。
答案 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小时