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

Làm cách nào tốt nhất để lưu trữ ngày / giờ trong MySql?

  1. Thông thường, bạn không nên làm như vậy:các kiểu dữ liệu trong lớp cơ sở dữ liệu phải có ý nghĩa riêng (càng tốt) và không phụ thuộc vào ứng dụng của bạn để diễn giải chúng. Như @Jim DeLaHunt nói , điều này cho phép cơ sở dữ liệu dễ dàng thao tác / diễn giải chúng từ SQL theo yêu cầu (và cũng cho phép bạn dễ dàng truy cập cùng một dữ liệu từ một cơ sở mã ứng dụng khác trong tương lai).

    MySQL có năm kiểu thời gian , chỉ có hai trong số đó lưu trữ cả ngày và giờ:DATETIMETIMESTAMP .

    Như những người khác đã ám chỉ, sự khác biệt phụ thuộc vào việc bạn có muốn lưu trữ múi giờ hay không - mặc dù tôi thấy rằng cách xem xét nó khá khó hiểu:

    • TIMESTAMP sử dụng time_zone của phiên biến để chuyển đổi đầu vào thành dấu thời gian UTC và sau đó quay lại lần nữa cho đầu ra:nó hữu ích để chỉ định một thời điểm chính xác trong thời gian;

    • DATETIME chỉ cần lưu trữ ngày và giờ mà không liên quan đến múi giờ, giống như chụp ảnh lịch và đồng hồ:nó hữu ích để chỉ định một sự kiện xảy ra trong cùng một giờ địa phương trên toàn cầu.

  2. Cũng giống như bạn khai báo bất kỳ cột nào khác, bạn chỉ định kiểu dữ liệu có liên quan sau tên cột.

    Hãy coi chừng TIMESTAMP có các tính năng bổ sung, chẳng hạn như cập nhật tự động , mà bạn có thể muốn tắt trong khai báo cột của mình nếu muốn.

  3. Sử dụng một trong các kiểu tạm thời ở trên, bạn sẽ có thể thực hiện tất cả điều này (sử dụng chức năng ngày theo yêu cầu). Đầu ra mặc định của TIMESTAMPDATETIME loại là một chuỗi trong 'YYYY-MM-DD HH:MM:SS' định dạng.

    Cụ thể, "thời gian đã trôi qua" từ việc so sánh hai giá trị chẳng hạn có thể được lấy bằng TIMEDIFF() chức năng:

    SELECT TIMEDIFF(end, start) AS elapsed
    FROM   my_table
    WHERE  ...
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể thay đổi một bảng trong mySql thông qua các thủ tục được lưu trữ không?

  2. Giới thiệu về SQL Joins

  3. Tạo lượt tham dự trong laravel

  4. Hơn 1000 lệnh gọi API với 1 công việc cron?

  5. Cấu hình của MySQL 8