Подтвердить что ты не робот

Год хранения в базе данных

Каков наилучший тип данных PostgreSQL для данных года, например, 2006 или 1847. TEXT, SMALLINT, DATE? В идеале я хотел бы иметь возможность запросить этот столбец со столбцом второго года-месяца-дня (в формате DATE).

4b9b3361

Ответ 1

Год является целым числом и даже поддерживает целочисленную арифметику значимым образом, поэтому text не имеет смысла. У вас нет месяца или дня, поэтому date находится прямо в окне. точное руководство говорит об smallint:

Тип smallint обычно используется только в том случае, если дисковое пространство имеет большую ценность.

Это оставляет integer естественным выбором. Если вы планируете объединить это значение с date и timestamps, то interval может иметь смысл как функции даты и времени и операторы имеют хорошее понимание interval s.

Так что это зависит от того, что вы планируете делать с этим "годом" и тем, чем он на самом деле является. Похоже, что простая integer подходит, но вам, возможно, придется немного смеяться, чтобы объединить ее со столбцом "второй год-месяц-день" (предположительно столбец date) в зависимости от того, как им нужно работать вместе.