我们有一个以24小时时间格式存储值的列。它是用户输入界面的字符串/文本。我需要将其转换为sql时间格式,以便我可以进行时差计算。如何将字符串转换为时间?示例:
StringColumn
1400
1600
需要
TimeColumn
1400
1600
这样我就可以计算得到2小时的时差。感谢。
答案 0 :(得分:1)
如果你的字符串值总是4个字符(意思是01-09而不是1-9的早期时间)那么这可行:
convert(time, stuff(StringColumn,3,0,':'))
答案 1 :(得分:1)
您可以像@ jpw的回答一样进行转换,特别是如果您可以在结果上使用DATEDIFF
来获得所需内容。
或者你可以像整数数学那样做:
SELECT (60*left('1900',2) + right('1900',2)) - (60*left('1400',2) + right('1400',2))
(我在此处使用了常量,但您可以使用列名替换'1900'
和'1400
'。
答案 2 :(得分:1)
CAST(LEFT(Stringcolumn, 2) + ':' + RIGHT(LEFT(Stringcolumn, 4), 2) AS TIME)