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

Cách lưu các ngày trong tương lai (!) Trong cơ sở dữ liệu

Trước tiên, tôi đã viết về vấn đề này rất chi tiết trước đây, vì vậy vui lòng đọc câu trả lời của tôi tại đây tại đây , cũng như bài đăng trên blog này của Lau Taarnskov .

Về vấn đề cụ thể đối với MySQL, bạn thường không muốn sử dụng TIMESTAMP cho giờ địa phương của sự kiện trong tương lai, vì nó sẽ chuyển đổi từ múi giờ của phiên sang UTC tại thời điểm ghi và chuyển đổi ngược lại từ UTC sang múi giờ của phiên tại thời điểm đọc. Ngay cả khi đây là những id múi giờ giống nhau (không nhất thiết phải như vậy), không có gì đảm bảo rằng dữ liệu múi giờ sẽ không thay đổi đối với một hoặc cả hai múi giờ giữa thời điểm bạn ghi dữ liệu và khi sự kiện diễn ra.

Thay vào đó, hãy sử dụng DATETIME , không có chuyển đổi múi giờ ngầm định. Bạn nhận được giá trị chính xác mà bạn đã viết. Lưu trữ giờ địa phương của sự kiện và lưu trữ VARCHAR trường chứa định danh múi giờ cho sự kiện. Đây là cách duy nhất để duy trì ý định ban đầu của người dùng.

Cơ sở lý luận và các trường hợp cạnh tranh đều được mô tả trong các câu trả lời tôi đã đưa ra trước đây.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO:Máy chủ MySQL đã biến mất

  2. Rails ActiveRecord - có cách nào để thực hiện các thao tác trên bảng mà không cần id không?

  3. MYSQL &Phpmyadmin không hiển thị cùng một DB

  4. MYSQL Parent Child Same Table; PHP Nest Children bên trong cha mẹ như một mảng đa chiều

  5. Innodb:Không thể tìm thấy chỉ mục FULLTEXT khớp với danh sách cột khi được truy vấn nhiều hơn 1 cột