Postgres loại dữ liệu timstamptz
(=timestamp with time zone
) lưu trữ các giá trị dưới dạng dấu thời gian UTC bên trong (giá trị số nguyên đếm micro giây kể từ năm 2000), không phụ thuộc vào múi giờ mà các giá trị đó được hiển thị vì. Nó không không lưu trữ bất kỳ thông tin múi giờ nào như một số người có thể nghĩ, đánh giá sai tên. Bạn có thể kết xuất và khôi phục bao nhiêu tùy thích.
Những gì bạn thấy trong ứng dụng khách của bạn phụ thuộc vào cài đặt múi giờ của phiên.
Chạy (trong cùng một phiên để tránh hiện tượng giả):
SHOW timezone;
Nếu bạn thấy localtime
thì Postgres sử dụng cài đặt mặc định của HĐH máy chủ của bạn.
Đặt múi giờ khác (trong phiên của bạn với SET timezone = ...;
, cho người dùng của bạn hoặc trên toàn cầu trong các tệp cấu hình) để xem dấu thời gian của bạn được định dạng khác nhau. Lưu ý rằng cài đặt múi giờ trong tệp kết xuất của bạn không có bất kỳ ảnh hưởng nào trong trường hợp này, chỉ cài đặt của phiên hiện tại của bạn mới có.
Giải thích chi tiết trong câu trả lời liên quan này:
Giới thiệu về các cách khác nhau để đặt các biến môi trường: