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

Lưu trữ dữ liệu ngày giờ dưới dạng số

Sẽ tốt hơn nhiều nếu ngày tháng được lưu trữ dưới dạng ngày tháng. Lưu trữ chúng dưới dạng số thay vì chuỗi sẽ dẫn đến một loạt vấn đề khác.

Nếu bạn hoàn toàn bị mắc kẹt với ngày được lưu trữ dưới dạng chuỗi, để cho phép sử dụng chỉ mục trên các cột, bạn cần chuyển đổi ngày bạn đang sử dụng làm tham số dưới dạng chuỗi ở định dạng thích hợp và sau đó dựa trên thực tế rằng sắp xếp các chuỗi theo định dạng cụ thể đó khớp với thứ tự sắp xếp dự kiến ​​của các ngày thực tế. Nếu bạn từng so sánh chuỗi với ngày hoặc với một số, bạn sẽ nhận được chuyển đổi kiểu dữ liệu ngầm, tốt nhất, sẽ dẫn đến các vấn đề về hiệu suất vì không thể sử dụng các chỉ mục và tệ nhất là sẽ tạo ra các kết quả hoặc lỗi không chính xác.

Giả sử bạn tránh chuyển đổi kiểu dữ liệu, các vấn đề về hiệu suất có thể phát sinh do trình tối ưu hóa gặp rất nhiều khó khăn trong việc ước tính bản số khi bạn sử dụng sai kiểu dữ liệu. Ví dụ, Oracle biết rằng có 365 ngày (hoặc 8760 giờ hoặc 525600 phút) từ ngày 1/1/2012 đến 1/1/2013. Mặt khác, có hàng tỷ chuỗi có thể có giữa '20120101000000' và '20130101000000'. Điều đó có thể khiến trình tối ưu hóa không sử dụng chỉ mục khi bạn muốn (hoặc ngược lại), sử dụng sai loại kết hợp, v.v.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 11gR2 Compression Advisor =Ác ma

  2. Cách trích xuất số tháng từ ngày trong Oracle

  3. những gì xảy ra trong giai đoạn áp dụng chuẩn bị

  4. Bí danh bảng không hoạt động trong các truy vấn Oracle SQL thô bên trong Django

  5. Oracle - Chọn trường có ký tự chữ thường