Трудно сделать это эффективно, потому что вы в конечном итоге делаете запросы, используя выражения, а не значения полей напрямую, и такие запросы не используют индексы хорошо.
В частности, не используйте DATEDIFF.
У вас может быть шанс с
ГДЕ DATEADD (мс, дата1, 3) <дата2 И DATEADD (мс, дата1, -3)> дата2
или
ГДЕ date2 МЕЖДУ DATEADD (мс, date1, 3) И DATEADD (мс, date1, -3)
Примечание. Обычно можно реорганизовать вставки так, чтобы они имели одинаковые значения меток времени, если они получены из одного и того же события или транзакции (но тогда у них будет какой-то другой общий ключ, и вам не потребуется это делать). 1013 *
Вы также можете хранить исходное значение в более низком разрешении - скажем, полную секунду или даже минуту - в зависимости от ваших требований, но тогда у вас все равно будут проблемы с границами.