Производительность Datetime2 и String в SQL Server

Каковы преимущества наличия столбца типа datetime2 в SQL Server вместо строки? Очевидно, что строки гораздо более гибкие. Есть ли преимущества производительности при выполнении запросов?

Я проектирую базу данных, в которой все записи добавляются с помощью функций на другом языке, и поэтому не нужно беспокоиться о том, что значение, не отформатированное как дата, будет добавлено в рассматриваемый столбец. Я подумываю о том, чтобы создать строку типа столбца, чтобы мне было легче разбирать их при запросах. Когда они добавляются в базу данных, они преобразуются из формата даты-времени Python, который по договоренности имеет шесть цифр точности в долях секунды, в формат даты-времени2, который имеет семь. Создание столбца типа string предотвратит это, но я беспокоюсь о проблемах производительности, которые могут возникнуть из-за отсутствия datetime2.

1 ответ

Datetime2 (и другие типы даты / времени):

  • сэкономит вам место для хранения, и это в конечном итоге приведет к увеличению производительности.
  • позволит вам легко выполнять математику по дате без необходимости создавать процедуры, которые нужно будет вычислить, если в феврале будет 28 или 29 дней (просто для примера).
  • имеют свои встроенные ограничения, чтобы вам не пришлось беспокоиться о том, что кто-то вставит недопустимую дату.
  • можно легко конвертировать в разные форматы
  • могут быть извлечены их части, включая недели, будни или дни года.
  • и так далее...
Другие вопросы по тегам