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

PostgreSQL:chọn các hàng xảy ra vào một ngày nhất định trong tuần, trong một múi giờ cụ thể

AT TIME ZONE khi được áp dụng cho timestamp without timezone tạo timestamp with timezone (và ngược lại). Và timestamp with timezone được diễn giải theo múi giờ trong phiên của bạn (trong trường hợp của bạn, múi giờ này buộc phải UTC ).

Vì vậy, biểu thức EXTRACT (dow from time at time zone 'Brisbane/Australia') không trích xuất ngày ở Brisbane vào thời điểm time (UTC) , nó trích xuất ngày tương ứng với time được chuyển đổi từ quan điểm của một người hầu như sống trong múi giờ UTC.

Ví dụ:khi tôi đang nhập nội dung này, nếu giả vờ đang ở UTC:

=> set timezone to 'UTC';
=> select now(),now() at time zone 'Australia/Brisbane';
             now              |         timezone          
------------------------------+---------------------------
 2013-10-27 18:01:03.15286+00 | 2013-10-28 04:01:03.15286

Được thôi, hôm nay là Chủ nhật 18:01 theo giờ UTC và 04:01 thứ Hai tại Brisbane

Nhưng nếu áp dụng dịch chuyển múi giờ cho timestamp without timezone :

select now(),now()::timestamp at time zone 'Australia/Brisbane';
              now              |           timezone            
-------------------------------+-------------------------------
 2013-10-27 18:01:57.878541+00 | 2013-10-27 08:01:57.878541+00

Chú ý cột thứ hai khác với kết quả trước đó như thế nào. Nó thực sự là 20 giờ tắt của Brisbane được thể hiện trong UTC:đó có lẽ là câu trả lời đúng về mặt kỹ thuật cho một câu hỏi không có nhiều ý nghĩa.

Có lẽ bạn muốn điều này:

EXTRACT (dow from (time AT TIME ZONE 'UTC') at time zone 'Brisbane/Australia')=0

nên trả lời:ngày và giờ time như được đo bằng UTC tương ứng với Chủ nhật ở Brisbane?




  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ại sao số nguyên không dấu không có sẵn trong PostgreSQL?

  2. PostgreSQL 9.0 Backup &Recovery

  3. Làm cách nào để tôi có thể Chèn đối tượng JSON vào Postgres bằng Java readyStatement?

  4. Truy vấn PostgreSQL với các cột động và số lượng từ phép tham gia

  5. PostgreSQL:Làm cách nào để đặt search_path ở cấp người dùng?