时间保存为varchar(8)格式,如:09241324,我想将其转换为时间格式。我可以摆脱最后的nn
,以便hh:mm:ss
可行。我尝试使用强制转换/转换,但它抛出错误:
从字符转换日期和/或时间时转换失败 字符串。
有人可以帮助我吗?
答案 0 :(得分:3)
这会有用吗?
convert(time, stuff(stuff(stuff(dt, 3, 0, ':'), 6, 0, ':'), 9, 0, '.'))
cast
通常比convert
更受欢迎,但我不知道您是否需要指定格式代码。
没有毫秒是类似的:
convert(time, stuff(stuff(stuff(dt, 3, 0, ':'), 6, 0, ':'), 9, 2, '.00'))
答案 1 :(得分:1)
插入时间格式化片段(冒号:和小数。)和CAST作为TIME:
DECLARE @string VARCHAR(10)
SET @string = '09241324'
SELECT CAST(
SUBSTRING(@string,1,2) + ':' +
SUBSTRING(@string,3,2) + ':' +
SUBSTRING(@string,5,2) + '.' +
SUBSTRING(@string,7,2) AS TIME)