PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chỉ định múi giờ để sử dụng làm múi giờ tham chiếu

Ngoài ra, bạn phải lưu chênh lệch múi giờ đến timestamp .

Như @Milen đã giải thích (và được liên kết với hướng dẫn sử dụng ):một timestamp chỉ lưu một điểm trong thời gian (dưới dạng giá trị trừu tượng). Công cụ sửa đổi múi giờ không được lưu, nó chỉ dùng để điều chỉnh timestamp liên quan đến UTC .

Hãy xem xét bản trình diễn sau:

-- DROP TABLE tbl;
CREATE TEMP TABLE tbl (id int, myts timestamptz, mytz interval);

INSERT INTO tbl VALUES
 (1, now()                , EXTRACT (timezone from now()) * interval '1s')
,(2, '2012-01-01 00:00-05', interval '-5h')
,(3, '2012-01-01 00:00+04', interval '4h')
,(4, '2012-11-11 20:30+03', interval '3h');

SELECT *
      ,(myts AT TIME ZONE mytz)::text
       || CASE WHEN mytz > '0:0' THEN '+' ELSE '' END
       || to_char(mytz, 'FMHH24:mi') AS timestamp_at_origin
FROM tbl;

Chạy nó cục bộ để xem. Đặc biệt chú ý đến các chi tiết của VÙNG THỜI GIAN cấu trúc và cách tôi trích xuất múi giờ từ dấu thời gian (local!) timestamp with time zone .
now() trả về timestamp with time zone hoặc timestamptz gọi tắt.

EXTRACT (timezone from now()) * interval '1s'

timestamp_at_origin hiển thị dấu thời gian với múi giờ như được thấy ở gốc của nó. Nếu tôi hiểu câu hỏi của bạn, thì đó là những gì bạn đang tìm kiếm.
Bạn có thể cải thiện thêm định dạng.

Bạn có thể quan tâm đến câu hỏi liên quan này điều này làm sáng tỏ sự mơ hồ và cạm bẫy của múi giờ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các trường cập nhật SQL của một bảng từ các trường của một bảng khác

  2. Chuyển đổi tất cả các bản ghi trong postgres thành Titlecase, chữ cái đầu tiên viết hoa

  3. PostgreSQL kiểm tra xem trường dấu thời gian có trống không

  4. Mảng trống làm giá trị mặc định của cột mảng PostgreSQL

  5. Thực thi nhiều câu lệnh với Postgresql thông qua SQLAlchemy không tiếp tục thay đổi