24小时时间格式字符串为sql时间格式

时间:2015-07-22 23:40:25

标签: sql sql-server-2012

我们有一个以24小时时间格式存储值的列。它是用户输入界面的字符串/文本。我需要将其转换为sql时间格式,以便我可以进行时差计算。如何将字符串转换为时间?示例:

StringColumn   
1400
1600

需要

TimeColumn
1400
1600

这样我就可以计算得到2小时的时差。感谢。

3 个答案:

答案 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)