sử dụng timestamptz
nó sẽ lưu dấu thời gian của bạn theo giờ UTC. và sẽ hiển thị nó cho khách hàng theo ngôn ngữ của nó.
https://www.postgresql.org/docs/current/static /datatype-datetime.html
đã cập nhật với một điểm tốt khác từ Lukasz , Tôi phải đề cập đến:
Không làm điều đó sẽ dẫn đến ngày '2017-12-31' với thời gian '23:01:01' ở múi giờ khác trên thực tế không chỉ khác thời gian mà còn khác ngày với tất cả NĂM và THÁNG và NGÀY khác nhau
một bản cập nhật khác Theo Laurenz lưu ý, đừng quên trích dẫn tài liệu ở trên Giá trị đầu vào có múi giờ rõ ràng được chỉ định được chuyển đổi thành UTC bằng cách sử dụng độ lệch thích hợp cho múi giờ đó . Có nghĩa là bạn phải quản lý ngày nhập liệu cẩn thận. Vd:
t=# create table t(t timestamptz);
CREATE TABLE
t=# set timezone to 'GMT+5';
SET
t=# insert into t select '2017-01-01 00:00:00';
INSERT 0 1
t=# insert into t select '2017-01-01 00:00:00' at time zone 'UTC';
INSERT 0 1
t=# insert into t select '2017-01-01 00:00:00+02';
INSERT 0 1
t=# select * from t;
t
------------------------
2017-01-01 00:00:00-05
2017-01-01 05:00:00-05
2016-12-31 17:00:00-05
(3 rows)