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

Cách biết múi giờ của dấu thời gian trong postgresql 8.3

Tôi giả sử bạn có một cột có tên ct có loại TIMESTAMPTZ trong bảng t . Sau đó, bạn có thể sử dụng:

SELECT EXTRACT(TIMEZONE FROM ct) FROM t;

để có được độ lệch của múi giờ tính bằng giây. Nó cung cấp cho bạn 3600 từ UTC / GMT điều đó có nghĩa là GMT+1 , CET hay bất cứ cái gì. Giá trị trả về phụ thuộc vào TIMEZONE của bạn cài đặt.

Mẫu (Tôi sống ở Đức, múi giờ thực tế là GMT+1 / CET ):

test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
      timestamptz       
------------------------
 2008-01-01 18:00:00+01

test=# set timezone to 'gmt';
SET
test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
      timestamptz       
------------------------
 2008-01-01 17:00:00+00

Như bạn có thể thấy, nó luôn xuất ra bất kỳ thứ gì trong múi giờ đã định cấu hình. Vì vậy, phần bù bạn sẽ nhận được với EXTRACT(TIMEZONE FROM ...) phụ thuộc vào TIMEZONE của bạn cài đặt. Múi giờ được cung cấp trên INSERT bị mất, bởi vì nó không đáng để được cứu. Điều quan trọng là mọi thứ đều chính xác và điều đó không phụ thuộc vào TIMEZONE cài đặt. PostgreSQL làm điều đó rất tốt.



  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ách Random () hoạt động trong PostgreSQL

  2. Cách POSITION () hoạt động trong PostgreSQL

  3. Cách hợp nhất tất cả các mảng số nguyên từ tất cả các bản ghi thành một mảng duy nhất trong postgres

  4. gọi hàm SQL trong hàm R

  5. PHP không thể kết nối với PostgreSQL trên CentOS 7