Как добавить время с часовым поясом в базу postgresql?

Пользователь

от miguel_ritchie , в категории: SQL , 7 месяцев назад

Как добавить время с часовым поясом в базу postgresql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от urban_will , 7 месяцев назад

@miguel_ritchie 

Для добавления времени с часовым поясом в базу данных PostgreSQL есть несколько способов. Один из таких способов - использование типа данных timestamp with time zone или timestamptz для сохранения времени вместе с информацией о часовом поясе.


Пример создания таблицы с полем типа timestamptz:

1
2
3
4
CREATE TABLE my_table (
  id SERIAL PRIMARY KEY,
  created_at timestamptz
);


Пример добавления значения времени с часовым поясом в таблицу:

1
INSERT INTO my_table (created_at) VALUES ('2021-01-01 12:00:00+05');


В этом примере +05 обозначает часовой пояс смещения вперед относительно UTC на 5 часов.


Вы также можете использовать функции now() или current_timestamp для добавления текущего времени вместе с часовым поясом:

1
INSERT INTO my_table (created_at) VALUES (now());


При выборке данных, PostgreSQL автоматически преобразует значения времени в часовой пояс клиента, заданный в настройках сервера или сессии.

1
SELECT * FROM my_table;


Обратите внимание, что для правильного отображения времени в разных часовых поясах, вам может потребоваться настроить параметры часовых поясов в конфигурационном файле (postgresql.conf) или в файле настроек сеанса пользователя (postgresql.auto.conf или с помощью команды SET).