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

Convert varchar field back to time datatype field with hh:mm:ss:ms format

请告诉我如何在 SQL Server 2008 R2 中重新转换为以下一位。

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

我在没有任何格式的情况下将 DATETIME 数据类型列转换为 nvarchar。只是 hhmmssms.

我想用 hh:mm:ss:ms 格式取回我的时间值。请帮忙。

你是这个意思?

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