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

Cách xử lý Tiết kiệm ánh sáng ban ngày trong cơ sở dữ liệu Oracle

Câu trả lời là:Nó phụ thuộc.

Tổng cộng cơ sở dữ liệu của bạn có ba múi giờ

  1. Múi giờ phiên của bạn:SESSIONTIMEZONE

Điều này bạn có thể thay đổi bằng ALTER SESSION SET TIME_ZONE=... bất cứ lúc nào. Nó có liên quan đến kết quả của

  • CURRENT_DATE

  • LOCALTIMESTAMP

  • CURRENT_TIMESTAMP


Đây cũng là múi giờ mục tiêu khi bạn thực hiện CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)

SESSIONTIMEZONE mặc định có thể được đặt bởi biến môi trường ORA_SDTZ hoặc (trên Windows) bằng mục đăng ký HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (đối với Máy khách 32 bit), tương ứng. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (dành cho Máy khách 64 bit).

  1. Múi giờ cơ sở dữ liệu:DBTIMEZONE

Thực ra điều này không quá quan trọng trong việc sử dụng hàng ngày, nó chỉ phù hợp với TIMESTAMP WITH LOCAL TIME ZONE cột kiểu dữ liệu và xác định định dạng lưu trữ.

Đây là KHÔNG múi giờ của SYSDATE hoặc SYSTIMESTAMP !!!

Bạn không thể thay đổi DBTIMEZONE trên cơ sở dữ liệu của bạn nếu cơ sở dữ liệu chứa một bảng có TIMESTAMP WITH LOCAL TIME ZONE cột và cột chứa dữ liệu. Nếu không, nó có thể được thay đổi bằng ALTER DATABASE SET TIME_ZONE='...'; . Thay đổi không có hiệu lực cho đến khi cơ sở dữ liệu được tắt và khởi động lại.

DBTIMEZONE được đặt khi cơ sở dữ liệu được tạo. Nếu không có múi giờ nào được cung cấp trong khi tạo cơ sở dữ liệu thì Oracle sẽ mặc định là múi giờ của hệ điều hành máy chủ.

  1. Múi giờ của hệ điều hành của máy chủ cơ sở dữ liệu:

Múi giờ này có liên quan đến kết quả của

  • SYSDATE

  • SYSTIMESTAMP


Đương nhiên múi giờ này không thể thay đổi trên cấp độ cơ sở dữ liệu. Trong trường hợp quốc gia của bạn sử dụng Giờ tiết kiệm ánh sáng ban ngày, múi giờ này có thể thay đổi hai lần một năm. Bạn có thể thẩm vấn nó bằng SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual; , chẳng hạn.

Vì vậy, nếu Hệ điều hành máy chủ DB của bạn được thiết lập đúng cách, thì bạn sẽ có thời gian mùa hè từ tuần sau trở đi (ít nhất là đối với Châu Âu)



  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 có cần tạo chỉ mục trên khóa ngoại trên Oracle không?

  2. Cách xuất dữ liệu thành tệp CSV trong Oracle bằng quy trình PL SQL

  3. Chuyển đổi cơ sở 36 sang cơ sở 10 chỉ sử dụng SQL

  4. Chức năng ngủ trong ORACLE

  5. Cách lấy ngày hoặc giờ làm việc giữa hai ngày