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

Làm cách nào để lưu trữ ngày tháng bằng đơn vị mili giây trong Mysql?

Đừng. DateTime các giá trị phải được lưu trữ dưới dạng DateTime , trừ khi bạn có lý do thực sự chính đáng để lưu trữ chúng (chẳng hạn như để hỗ trợ các giá trị ngày và giờ nằm ​​ngoài giá trị tối thiểu / tối đa của DateTime ), Tôi khuyên bạn nên để nó trong DateTime cột.

Bạn luôn có thể thao tác với cách trả lại chúng từ cơ sở dữ liệu trong khi Select hoặc trong lớp trình bày. Để trả lại thời gian unix từ DateTime , MySql cung cấp một phương thức tích hợp được gọi là UNIX_TIMESTAMP . Để trả về số mili giây, chỉ cần nhân với 1000, vì dấu thời gian unix là số giây kể từ ngày 1 tháng 1 năm 1970 (không bao gồm giây nhuận). Nếu bạn muốn lưu trữ thời gian unix, bạn sẽ phải sử dụng kiểu dữ liệu int.

Xin lưu ý rằng nếu bạn lưu trữ thời gian unix thay vì lưu trữ DateTime thực tế giá trị trong một DateTime cột kiểu dữ liệu, bạn sẽ mất khả năng sử dụng tất cả các ngày giờ được xây dựng trong các chức năng cơ sở dữ liệu một cách dễ dàng. Ví dụ:nếu bạn muốn tìm xem có bao nhiêu hàng thuộc một tháng cụ thể, trước tiên bạn sẽ phải dịch dữ liệu từ int sang datetime và chỉ sau đó bạn mới có thể tính toán được điều đó.

Bạn cũng sẽ mất độ chính xác (vì thời gian unix không chính xác ngay cả trên độ phân giải 1 giây, vì nó bỏ qua giây nhuận).

Vì vậy, để kết luận - Khi cơ sở dữ liệu cung cấp cho bạn một kiểu dữ liệu phù hợp với dữ liệu, đừng lưu trữ dữ liệu đó bằng một kiểu dữ liệu khác. sử dụng Date loại dữ liệu nếu bạn chỉ muốn lưu trữ ngày, DateTime loại dữ liệu nếu bạn muốn lưu trữ các giá trị datetime và Time kiểu dữ liệu nếu bạn muốn lưu trữ một thời gian cụ thể trong ngày.

Tái bút
Khi xử lý các giá trị ngày giờ, Đặc biệt nếu bạn phải giao dịch với khách hàng từ nhiều địa điểm, LUÔN LUÔN chỉ lưu trữ ngày giờ UTC trong cơ sở dữ liệu của bạn, tất nhiên, bạn muốn phát điên lên.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql trong danh sách chỉ xác nhận id đầu tiên trong danh sách. có thể là một vấn đề đốm màu

  2. Rắc rối khi xoay quanh truy vấn xóa SQL phức tạp

  3. Cách đặt lại mật khẩu người dùng gốc MySQL

  4. Sao chép dữ liệu giữa các cơ sở dữ liệu khác nhau (cả hai đều được hỗ trợ jdbc)

  5. Lỗi trong MySQL khi đặt giá trị mặc định cho DATE hoặc DATETIME