Something like that:
with sample_data (start_dt, end_dt) as ( select cast('2012-10-04 12:48:56:000' as datetime), cast('2012-10-04 12:48:58:000' as datetime) union all select cast('2012-10-04 12:48:56:000' as datetime), cast('2012-10-04 12:48:56:010' as datetime) ) select start_dt, end_dt, dateadd(millisecond, datediff(millisecond, start_dt, end_dt) / 2, start_dt) from sample_data
Although the second pair is not calculated properly. Probably due to a resolution of 3 milliseconds.
source share