sự khác biệt cơ bản giữa Ngày, Ngày (định dạng ISO), Ngày (dấu thời gian Unix) để tạo trường


8

Tôi đã tạo một trường dưới dạng trường ngày (dấu thời gian Unix).

Khi tôi chỉnh sửa một nội dung có một số giá trị đầu vào trong trường được tạo ở trên, nó sẽ hiển thị một lỗi như dưới đây: -

PDOException: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'field_reprisal_date_value' at row 1: INSERT INTO {field_data_field_reprisal_date} (entity_type, entity_id, revision_id, bundle, delta, language, field_reprisal_date_value) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 258985 [:db_insert_placeholder_2] => 245170 [:db_insert_placeholder_3] => embedded_video [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => 2015-03-02 ) in field_sql_storage_field_storage_write() (line 494 of /www/d7yourtango/modules/field/modules/field_sql_storage/field_sql_storage.module).

Nhưng sau khi xóa trường trên một lần nữa, tôi tạo một trường khác dưới dạng trường Ngày và tôi xử lý tương tự, nó hoạt động.

Vì vậy, câu hỏi của tôi là tại sao nó xảy ra như vậy cho trường hợp đầu tiên?

Và sự khác biệt cơ bản giữa các loại trường Ngày, Ngày (định dạng ISO), Ngày (dấu thời gian Unix) để tạo trường.

Câu trả lời:


8

Dưới đây giải thích ba loại trường chi tiết

Ngày

  • Được gọi là loại trường 'datetime' trong cơ sở dữ liệu kỹ thuật. Loại định dạng này được đề xuất cho hầu hết các cài đặt vì nó tận dụng các chức năng xử lý ngày của cơ sở dữ liệu mà không có bất kỳ chuyển đổi nào, có nghĩa là các truy vấn nhanh hơn.
  • Lưu trữ ngày ở định dạng ngày gốc của cơ sở dữ liệu (YYYY-MM-DD HH: MM: SS).
  • Dữ liệu ở dạng người có thể đọc được.
  • Bạn có thể sử dụng nó cho các ngày không đầy đủ, tức là chỉ một năm hoặc chỉ một năm và một tháng, và đệm các giá trị khác bằng số không, vì vậy nó dường như không chính xác hơn thực tế.

Ngày (Định dạng ISO)

  • Lưu trữ ngày ở định dạng ISO (YYYY-MM-DDTHH: MM: SS).

  • Dữ liệu ở dạng người có thể đọc được.

  • Danh sách Bạn có thể sử dụng nó cho các ngày không đầy đủ, tức là chỉ một năm hoặc chỉ một năm và một tháng và đệm các giá trị khác bằng số không, vì vậy nó dường như không chính xác hơn thực tế.

  • Nó là một định dạng được quốc tế công nhận và nó được sử dụng như trên nhiều trang web và trong nhiều ứng dụng.

Ngày (Dấu thời gian Unix)

  • Lưu trữ ngày dưới dạng một số nguyên.

  • Chiếm ít phòng hơn trong cơ sở dữ liệu vì nó nhỏ hơn.

  • Thường dễ sử dụng hơn để tính toán ngày vì bạn có thể tăng hoặc giảm chỉ bằng cách thêm hoặc trừ giây.

  • Nó là định dạng được sử dụng bởi các hàm ngày php.

  • Nó phải được điền đầy đủ một ngày - năm, tháng, ngày, giờ, phút, giây, vì vậy đôi khi bạn phải tùy ý đặt một số giá trị này ngay cả khi chúng không được áp dụng.

Lấy tài liệu tham khảo từ đây


Một hạn chế quan trọng của "Ngày (Dấu thời gian Unix)" là phạm vi. Sớm nhất vào khoảng năm 1902, muộn nhất vào khoảng năm 2038. Từ một bình luận trên trang tham khảo của bạn: "Những ngày dưới năm 1902 hoặc trên năm 2037 thường không thể được lưu bằng tem số nguyên đã xác định"
François
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.