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

PostgreSQL - làm thế nào để hiển thị ngày ở múi giờ khác nhau?

Chìa khóa là chuyển múi giờ địa phương sang múi giờ hiển thị mong muốn, trong suốt thời gian của giao dịch:

begin;
set local timezone to 'EST5EDT';
select to_char('2012-05-29 15:00:00'::timestamp at time zone 'CDT',
  'YYYY-MM-DD HH24:MI:SS TZ');
end;

Kết quả là:

2012-05-29 16:00:00 EDT

Lưu ý rằng với set [local] timezone bắt buộc phải sử dụng tên múi giờ đầy đủ thay vì viết tắt (ví dụ:CST sẽ không hoạt động). Tra cứu trong pg_timezone_names xem các lựa chọn hợp lệ.

Để sử dụng phương thức đó trong ngữ cảnh tương tự như lời gọi to_char (), tôi tin rằng hàm này thực hiện công việc:

CREATE FUNCTION display_in_other_tz(
      in_t timestamptz,
      in_tzname text,
      in_fmt text) RETURNS text
AS $$
DECLARE
 v text;
 save_tz text;
BEGIN
  SHOW timezone into save_tz;
  EXECUTE 'SET local timezone to ' || quote_literal(in_tzname);
  SELECT to_char(in_t, in_fmt) INTO v;
  EXECUTE 'SET local timezone to ' || quote_literal(save_tz);
  RETURN v;
END;
$$ language plpgsql;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để bạn tạo một chuỗi ngẫu nhiên phù hợp với ID phiên trong PostgreSQL?

  2. Chú thích ngủ đông cho kiểu nối tiếp PostgreSQL

  3. Làm cách nào để bạn in kết quả của một truy vấn PostgreSQL ở định dạng CSV hoặc TSV từ dòng lệnh?

  4. psql:FATAL:cơ sở dữ liệu <người dùng> không tồn tại

  5. Mới trong PostgreSQL 12:Các cột được tạo