Это даст вам миллисекунды. Легко адаптируется к секундам ...
declare @dfrom datetime = '1970-01-01 16:15:33.021'
declare @dto datetime = '2058-01-01 15:00:55.557'
declare @diff bigint =
cast(DATEDIFF(d, @dfrom, @dto) as bigint) * 24 * 3600 * 1000
+ DATEDIFF(ms, cast(@dfrom as time), cast(@dto as time))
declare @dreverse datetime =
dateadd(ms, @diff % (1000 * 3600 * 24),
dateadd(day, @diff / (1000 * 3600 * 24), @dfrom))
select @dfrom as [From], @dto as [To], @diff as [Diff], @dreverse as [Reverse] for xml path('')
дает:
<From>1970-01-01T16:15:33.020</From>
<To>2058-01-01T15:00:55.557</To>
<Diff>2777064322537</Diff>
<Reverse>2058-01-01T15:00:55.557</Reverse>