У нас есть база данных с более чем 100 таблицами, которая уже развернута на десятках производственных площадок. Первоначально все столбцы datetime имели тип datetime, но по мере развития системы мы начали использовать datetime2 для новых модулей / функций. Теперь мы иногда сталкиваемся с проблемой точности при сравнении значений из разных таблиц и должны приводить datetime2 при сравнении с datetime.
Система использует C # и Entity Framework для 90% бизнес-логики и хранимые процедуры для оставшихся 10%. Система хранит много информации о временных рядах и типах событий, и есть бизнес-логика, на которую опирается, например:
- end_time_utc (datetime) с совпадающим start_time_utc (datetime) в других строках
- столбец типа datetime в 1 таблице, имеющий совпадающее значение в столбце типа datetime в другой таблице
Я рассматриваю вопрос о переносе всех столбцов datetime на datetime2. Я знаю, как написать сценарий для этого, но мне интересно, в чем опасность и с какими проблемами люди сталкиваются при этом?