Я разрабатываю таблицу изменений, в которой я в основном записываю старое и новое значение для изменений в полях двух типов: десятичное и datetime.SQL Server - сохранение даты и времени
Чтобы сделать это простым, я думал о создании строкового поля и преобразовании значений в строку перед хранением в таблице. Моя проблема в том, что позже мне нужно будет создать поле в отчете, чтобы показать разницу между изменениями (например, если дата изменилась с 01/20/2015 по 01/27/2015, разница будет равна 7 и так далее на). Я не хочу создавать поле в таблице для записи разницы между полями, я хочу сделать это в стороне отчета.
Мой вопрос: Есть ли способ сохранить эти два вида данных (десятичные и datetime), чтобы упростить сравнение позже? Причина, если у меня это в строковом типе, мне придется преобразовать его два раза - один, прежде чем создавать запись в БД, а другой - посмотреть, в чем разница между ними.
Вы можете легко «CAST (stringfield AS DATE)» на конце, но я не понимаю, почему вы не хотите использовать поле «DATE». –
А почему бы не хранить в истории реальные типы этих столбцов? –
Если вы сохраняете даты, используйте соответствующий тип данных, это 'DATE' или' DATETIME', это позволит вам использовать встроенные функции DATETIME и сделает вашу жизнь проще. Вы сделали хороший выбор: не хранить разницу между значениями, это то, что вы должны делать во время выполнения. –