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

如何在sql server中将nvarchar类型转换为仅时间类型格式,sql,sql-server,datetime,error-handling,date-format,Sql,Sql Server,Datetime,Error Handling,Date Format,我有一个nvarchar类型的列,即170948我想将它存储在时间类型列中 为此我写了 select @CurrentTimeValue=Convert(time, items, 108) from T 但这是一个错误 从字符串转换日期和/或时间时,转换失败 请建议正确的格式,因为受支持的转换样式都与您的输入不匹配,因此您必须手动调整您的输入-如下所示: DECLARE @input VARCHAR(10) = '170948' DECLARE @modified VARCHAR(10)

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

为此我写了

select @CurrentTimeValue=Convert(time, items, 108) from T
但这是一个错误

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


请建议正确的格式

,因为受支持的
转换
样式都与您的输入不匹配,因此您必须手动调整您的输入-如下所示:

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)
你也可以试试

select cast(stuff(stuff('170948', 5,0,':'), 3,0,':') as time)
选中-它列出了
CONVERT
所支持的所有有效日期和时间格式-选择适合您的格式
select cast(stuff(stuff('170948', 3,0,':'), 6,0,':') as time)