declare @dt datetime = '2018-04-25 12:40:59.573'
declare @dunno varchar(16) = '114643.052303537'
Уберите дату из даты и времени и дайте ей сегодняшнюю дату
getdate() + right(convert(varchar,@dt,113),12)
Конвертируйте varchar во время и задайте сегодняшнюю дату
getdate() + left(stuff(stuff(@dunno,3,0,':'),6,0,':'),8)
Найдите миллисекунды между ними
datediff(millisecond,getdate() + left(stuff(stuff(@dunno,3,0,':'),6,0,':'),8),getdate() + right(convert(varchar,@dt,113),12))
Соберите все вместе в вашем формате
select
convert(char(13),
dateadd(millisecond,
datediff(millisecond,getdate() + left(stuff(stuff(@dunno,3,0,':'),6,0,':'),8),getdate() + right(convert(varchar,@dt,113),12)),
'01/01/00'),
14)
В зависимости от скорости вашего сервера и другого кода, было бы разумно использовать переменную для GETDATE()
вначало предотвращения различий в миллисекундах или даже секундах во время преобразования.
declare @dt datetime = '2018-04-25 12:40:59.573'
declare @dunno varchar(16) = '114643.052303537'
declare @today datetime = getdate()
declare @dunno2 datetime
declare @dt2 datetime
set @dt2 = @today + right(convert(varchar,@dt,113),12)
set @dunno2 = @today + left(stuff(stuff(@dunno,3,0,':'),6,0,':'),8)
select
convert(char(13),
dateadd(millisecond,
datediff(millisecond,@dunno2,@dt2),
'01/01/00'),
14)