Когда я должен использовать DateTime (часовой пояс = True) и когда TIMESTAMP (часовой пояс = True)? - PullRequest
1 голос
/ 21 апреля 2019

Скажем, я хочу хранить осведомленные datetime с (т. Е. Временные метки со смещением часового пояса) в базе данных, используя SQLAlchemy, и я хочу, чтобы она просто работала с таким же количеством типов реляционных баз данных (SQLite, PostgreSQL, MySQL, Oracleи т. д.) насколько это возможно.Для этой цели SQLAlchemy предлагает два типа: DateTime и его подкласс TIMESTAMP.Оба принимают необязательный аргумент timezone, который может быть установлен на True для хранения значений с учетом часового пояса.Однако мне не ясно, в чем разница между этими двумя типами или почему / когда я должен использовать один над другим.

Интересно, что в документах DateTime написано:

Для поддержки часовых поясов используйте как минимум тип TIMESTAMP, если не объект типа данных, специфичный для диалекта.

[В аргументе timezone:] Рекомендуется использовать TIMESTAMPТип данных напрямую при использовании этого флага, так как некоторые базы данных включают отдельные общие типы хранения даты / времени, отличные от типа данных TIMESTAMP с поддержкой часового пояса, такие как Oracle.

..., который поднимает вопрос, еслиЯ должен использовать TIMESTAMP, тогда для чего DateTime?Что именно может пойти не так с использованием неправильного типа столбца?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...