Как лучше всего хранить отформатированную метку времени в Postgresql - PullRequest
0 голосов
/ 10 июля 2020

Как лучше всего сохранить значение метки времени в Postgresql в заданном формате c. Например, я хотел бы сохранить TIMESTAMP '2020-07-09 17:29:30.873513Z' с точностью до минуты и игнорировать значение секунд.

Я могу отбросить секунды, используя date_trunc('minute', TIMESTAMP '2020-07-09 17:29:30.873513Z') Могу ли я указать этот формат в самом столбце, когда Создаю таблицу?

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Не храните отформатированные метки времени в базе данных, используйте timestamp with time zone или timestamp without time zone. Вы потеряете мощную арифметику даты и времени c, проверку значений и потратите впустую пространство для хранения.

Чтобы значения были усечены до минутной точности, используйте триггер BEFORE INSERT, который использует date_trunc для значения.

Если вы хотите убедиться, что сохраняются только такие значения, добавьте проверочное ограничение.

0 голосов
/ 10 июля 2020

Хочу порекомендовать не терять секунды или что-нибудь из сохраненных данных. Потому что это создаст проблемы при обработке данных позже. И если вам нужно что-то удалить, вы можете удалить это при извлечении данных.

Используйте следующий код при создании таблицы

col_name timestamp without time zone DEFAULT timezone('gmt'::text, now())

Это даст вам результат, как показано в следующее изображение:

введите описание изображения здесь

Удачи.

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