Я работаю над приложением, которое хранит данные в базе данных SQL Server. Некоторые из них - это момент времени, хранящийся в UTC (например, время записи в журнале), а другие - литеральная дата/время (например, «принимать лекарство X в 16:00 20 июля, независимо от вашего часового пояса»).Отличие между столбцами с UTC и локальным datetime
Проблема в том, что они оба имеют компонент даты и времени, поэтому использование столбца типа datetime2 имеет смысл для обоих. Мы сейчас находимся в ситуации, когда в нашем приложении часто неясно, является ли столбец даты/времени временем UTC или буквальная дата/время
Что является наиболее распространенной практикой различать эти 2 случай я могу думать об этих вариантах:.?
1) Конец всех столбцов UTC в ... МАХ, в то время как буквальный даты/time не имеют специального окончания.
2) Конец всех литералов в столбцах ... Буквы, а столбцы даты/времени UTC не имеют специального окончания.
3) Дайте столбцам UTC тип данных datetime2 и литеральные столбцы даты/времени datetimeoffset.
Вы можете изменить таблицу и добавить новый столбец? например. столбец флагов 'isUTC', который показывает вам, является ли это временем UTC или нет ... – Nebi
Я видел # 1 довольно часто (и использую его сам). Я не видел №2 «в дикой природе». Я бы не предложил № 3 – jleach