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

Postgres thời gian với múi giờ bình đẳng

Đây là hai cách để đánh giá timetz bình đẳng:

SELECT a, b, a = b AS plain_equality
     , '2000-1-1'::date + a = '2000-1-1'::date + b AS ts_equality
     , a AT TIME ZONE 'UTC', b AT TIME ZONE 'UTC'  AS timetz_equality
FROM  (
   SELECT '12:00:00 -0800'::timetz AS a
        , '14:00:00 -0600'::timetz AS b
   ) sub;

Cách đầu tiên bằng cách thêm nó vào một date .
Thứ hai bằng cách sử dụng AT TIME ZONE xây dựng.

Nhưng thay vì sử dụng time with time zone hoàn toàn.
Postgres chỉ hỗ trợ kiểu này vì nó nằm trong tiêu chuẩn SQL. Nó bị hỏng do thiết kế (không thể coi là DST!) Và việc sử dụng nó không được khuyến khích.

Trích dẫn hướng dẫn sử dụng tại đây:

Loại time with time zone được định nghĩa bởi tiêu chuẩn SQL, nhưng định nghĩa thể hiện các thuộc tính dẫn đến tính hữu dụng đáng ngờ. Trong hầu hết các trường hợp, sự kết hợp của date , time , timestamp without time zonetimestamp with time zone nên cung cấp đầy đủ chức năng cập nhật / thời gian theo yêu cầu của bất kỳ ứng dụng nào.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tác nhân PostgreSQL trong ủy ban tiêu chuẩn SQL một lần nữa

  2. Cách xử lý các diễn biến cơ sở dữ liệu Play Framework 2 trong quá trình sản xuất

  3. Khôi phục sao lưu PostgreSQL và TimescaleDB bằng ClusterControl CLI

  4. Hàm GREATEST () trong PostgreSQL

  5. Trả về các giá trị không phải dạng số từ cột cơ sở dữ liệu PostgreSQL