使用hh:mm:ss:ms格式将varchar字段转换回时间数据类型字段

时间:2015-07-04 06:50:07

标签: sql-server sql-server-2008-r2

请告诉我如何在SQL Server 2008 R2中重新转换下面的一个。

select replace(Convert (varchar(8), GetDate(), 108), ':', '');

我将DATETIME数据类型列转换为nvarchar,没有任何格式。它只是hhmmssms

我希望以hh:mm:ss:ms格式恢复时间价值。请帮忙。

1 个答案:

答案 0 :(得分:1)

你是说这个?

declare @VarTime as int = replace(Convert (varchar(8),GetDate(), 108),':','')

select convert(time,convert(varchar(2),(@VarTime / 10000) % 100) +':'+
       convert(varchar(2),(@VarTime / 100) % 100)+':'+
       convert(varchar(2),right(@VarTime,2)))

输出:

12:28:45

编辑:如果您的日期类似于hhmmssms

set @VarTime = '11223344'
select convert(varchar(2),(@VarTime / 1000000) % 100) +':'+
       convert(varchar(2),(@VarTime / 10000) % 100) +':'+
       convert(varchar(2),(@VarTime / 100) % 100)+':'+
       convert(varchar(2),right(@VarTime,2))