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

Dấu thời gian với độ chính xác mili giây:Cách lưu chúng trong MySQL

Bạn cần ở MySQL phiên bản 5.6.4 trở lên để khai báo các cột có kiểu dữ liệu thời gian phân đoạn-giây. Không chắc bạn có phiên bản phù hợp? Thử SELECT NOW(3) . Nếu bạn gặp lỗi, bạn không có phiên bản phù hợp.

Ví dụ:DATETIME(3) sẽ cung cấp cho bạn độ phân giải mili giây trong dấu thời gian của bạn và TIMESTAMP(6) sẽ cung cấp cho bạn độ phân giải micro giây trên dấu thời gian kiểu * nix.

Đọc phần này: https://dev.mysql.com/ doc / refman / 8.0 / en / fractional-seconds.html

NOW(3) sẽ cung cấp cho bạn thời gian hiện tại từ hệ điều hành máy chủ MySQL của bạn với độ chính xác mili giây.

Nếu bạn có số mili giây kể từ Kỷ nguyên Unix , hãy thử điều này để nhận giá trị DATETIME (3)

FROM_UNIXTIME(ms * 0.001)

Dấu thời gian Javascript chẳng hạn, được biểu thị bằng mili giây kể từ Kỷ nguyên Unix .

(Lưu ý rằng số học phân số nội bộ MySQL, như * 0.001 , luôn được xử lý dưới dạng dấu phẩy động có độ chính xác kép IEEE754, vì vậy, không chắc bạn sẽ mất độ chính xác trước khi Mặt trời trở thành một ngôi sao lùn trắng.)

Nếu bạn đang sử dụng phiên bản MySQL cũ hơn và bạn cần độ chính xác của thời gian dưới giây, thì cách tốt nhất của bạn là nâng cấp. Bất cứ điều gì khác sẽ buộc bạn phải thực hiện những cách giải quyết lộn xộn.

Nếu vì lý do nào đó mà bạn không thể nâng cấp, bạn có thể xem xét sử dụng BIGINT hoặc DOUBLE để lưu trữ dấu thời gian Javascript như thể chúng là số. FROM_UNIXTIME(col * 0.001) sẽ vẫn hoạt động tốt. Nếu bạn cần thời gian hiện tại để lưu trữ trong một cột như vậy, bạn có thể sử dụng UNIX_TIMESTAMP() * 1000



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng MySQL với Entity Framework

  2. Cách đặt lại mật khẩu quản trị viên WordPress qua MySQL Command Prompt

  3. Nâng cấp giản đồ trực tuyến trong MySQL Galera Cluster bằng phương pháp RSU

  4. Cách kết hợp nhiều dòng thành một cột trong MySQL

  5. Cardinality trong MySQL là gì?