如何在sql server中将nvarchar类型转换为仅时间类型格式

时间:2013-10-22 06:31:46

标签: sql sql-server datetime error-handling date-format

我有nvarchar类型的列,即170948我想将其存储在时间类型列中

为此,我写了

select @CurrentTimeValue=Convert(time, items, 108) from T

但是它正在抛出错误

  

从字符串转换日期和/或时间时转换失败。

请建议正确的格式

3 个答案:

答案 0 :(得分:1)

由于所支持的CONVERT样式都不符合您的输入,因此您必须手动调整输入 - 如下所示:

DECLARE @input VARCHAR(10) = '170948'

DECLARE @modified VARCHAR(10)

SET @modified = SUBSTRING(@input, 1, 2) + ':' + SUBSTRING(@input, 3, 2) + ':' + RIGHT(@input, 2)

SELECT CAST(@modified AS TIME)

答案 1 :(得分:0)

您也可以尝试

select cast(stuff(stuff('170948', 5,0,':'), 3,0,':') as time)

答案 2 :(得分:0)

select cast(stuff(stuff('170948', 3,0,':'), 6,0,':') as time)