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

Việc thay đổi múi giờ MySQL có làm thay đổi giá trị của các trường DateTime trong cơ sở dữ liệu không?

Về nguyên tắc thì không nên. Có nhiều lý do tại sao nó không nên thay đổi, tùy thuộc vào loại giá trị của bạn:chủ yếu là DATETIME và TIMESTAMP.

Các giá trị DATETIME không bao giờ được chuyển đổi, vì vậy chúng không phụ thuộc vào múi giờ.

Giá trị TIMESTAMP được chuyển đổi (trích dẫn trực tiếp từ sách hướng dẫn ở đây --- Tôi giả sử bạn có phiên bản MySQL khá gần đây) "từ múi giờ hiện tại sang UTC để lưu trữ và quay trở lại từ UTC sang múi giờ hiện tại để truy xuất. (Điều này không xảy ra đối với các loại khác như DATETIME.) Theo mặc định, múi giờ hiện tại cho mỗi kết nối là thời gian của máy chủ. Múi giờ có thể được đặt trên cơ sở từng kết nối. Miễn là cài đặt múi giờ không đổi, bạn lấy lại cùng giá trị mà bạn lưu trữ. Nếu bạn lưu trữ giá trị TIMESTAMP, sau đó thay đổi múi giờ và truy xuất giá trị, giá trị đã truy xuất sẽ khác với giá trị bạn đã lưu trữ. Điều này xảy ra vì cùng múi giờ không được sử dụng để chuyển đổi trong cả hai hướng. " (từ http://dev.mysql.com/doc/refman /5.5/en/datetime.html ).

Vì vậy, trong cả hai trường hợp, dữ liệu thực sự được lưu trữ trên máy chủ không thay đổi (đúng như vậy), nhưng các giá trị mà truy vấn của bạn sẽ hiển thị có thể khác nhau trước và sau đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đang cố gắng thực hiện thao tác MINUS trong MySQL

  2. Tệp my.cnf của MySQL 5.7 ở đâu?

  3. Làm cách nào để sử dụng lại các giá trị auto_increment?

  4. MySQL 8 Biểu thức Bảng Phổ biến CTE

  5. Thiết kế cơ sở dữ liệu:Cách tiếp cận nào tốt hơn?