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

Khi nào chúng tôi chọn DateTime trên Timestamp

Như đã nói trong một bình luận, tôi tin rằng điều này chủ yếu là do sở thích cá nhân. Trong mắt tôi, việc sử dụng dấu thời gian Unix và các giao diện không phải OOP "kế thừa" không phải là cách để làm điều đó trong tương lai trong thế giới ngày nay, ví dụ:chúng tôi không (đọc:không nên) sử dụng mã <> INT kiểu dữ liệu trong cơ sở dữ liệu của chúng tôi để lưu trữ ngày tháng ở định dạng Dấu thời gian Unix, thay vào đó chúng ta nên sử dụng kiểu gốc của cơ sở dữ liệu thường là DATE hoặc DATETIME nhập hợp tác với DateTime của PHP đối tượng (và các ngôn ngữ khác ') gần như nguyên bản khi nói đến chuyển đổi tiêu chuẩn.

Để giải thích một chút về ý của tôi khi chuyển đổi tiêu chuẩn:Khi bạn sử dụng MySQL và kéo một giá trị về PHP, bạn sẽ nhận được một chuỗi ngày có định dạng ISO, trong đó có DateTime phân tích cú pháp lớp trong phương thức khởi tạo của nó, cung cấp cho bạn một đối tượng có thể sử dụng ngay lập tức. Ngược lại, để đi theo tuyến dấu thời gian Unix, bạn sẽ phải sử dụng strtotime , sau đó ngày để chuyển nó thành bất kỳ định dạng nào bạn muốn.

Tôi đã đề cập trước đây về tương tác giữa hệ thống PHP và hệ thống .NET của chúng tôi. Mặc dù không có vấn đề cụ thể nào gây ra bởi việc sử dụng dấu thời gian, nó đơn giản không phải là giải pháp thực tế, vì một lần nữa, chúng tôi sử dụng cơ sở dữ liệu trả về giá trị DateTime có thể được gửi thẳng xuống đường ống. Nếu chúng tôi chuyển đổi mã này thành dấu thời gian unix để sử dụng nội bộ trong PHP, chúng tôi cũng sẽ phải chuyển đổi nó trở lại nếu chúng tôi gửi phản hồi hoặc gửi phản hồi đến Ứng dụng .NET (hoặc tôi chỉ nên nói API trong trường hợp này) đó là dấu thời gian và chuyển đổi nó ở cuối. Bằng cách sử dụng DateTime trên diện rộng, nó làm giảm bớt nhu cầu về bất kỳ chuyển đổi nào xảy ra và toàn bộ quá trình phát triển dễ dàng hơn.

Cuối cùng để thêm vào tất cả những điều này, như bạn cũng đã đề cập trong bài đăng của mình, bạn phải sử dụng các vật phẩm sáng bóng như DateInterval , phân chia thời gian dễ dàng hơn, thao tác dễ dàng hơn và định dạng dễ dàng hơn, v.v. khi bạn sử dụng DateTime và các đối tác hướng đối tượng có liên quan trong tội phạm. Trong mắt tôi, đó chỉ là một quá trình phát triển dễ dàng hơn.

Tôi không tin như lúc đầu tôi đã nói rằng có một câu trả lời "chính xác" cho điều này, chỉ là sở thích cá nhân dựa trên phong cách viết mã của riêng bạn và các nhận xét ở trên phản ánh của tôi.

  • Tôi không tin như vậy theo bất kỳ cách nào. Đặc biệt là với các tập lệnh PHP thường là các quy trình chạy ngắn như vậy.

Có :)

Xem các nhận xét ở trên trên cơ sở dữ liệu, việc sử dụng Dấu thời gian Unix cho mục đích IMO này không phải là "nguyên bản". Bạn chỉ có thể gọi -> getTimezone và lưu trữ dữ liệu này trong cơ sở dữ liệu, sau đó sử dụng -> setTimezone khi bạn kéo nó ra một lần nữa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NodeJS và mysql:đợi kết quả truy vấn

  2. CHÈN VÀO ... CHỌN TỪ ... TRÊN CẬP NHẬT KHÓA DUPLICATE

  3. codeigniter mysql trái tham gia bao gồm chọn

  4. Cú pháp BẢNG ALTER SQL - Được DBMS liệt kê

  5. Bảng gốc 'performance_schema'. '???' có cấu trúc sai