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

Cách biểu diễn ngày tháng không chắc chắn trong PostgreSQL

Có một số cách khác nhau để tiếp cận ngày mờ. Trong PostgreSQL, bạn có thể sử dụng

  • một cặp cột ngày (ngày_tháng_ sớm nhất, ngày_năm_thời_cấp nhất),
  • cột ngày và cột chính xác ('2012-01-01', 'năm') hoặc
  • một kiểu dữ liệu phạm vi (daterange) hoặc
  • a varchar ('2013-01-2?', '2013 - ?? - 05') hoặc
  • một bảng khác hoặc các bảng có bất kỳ kiểu dữ liệu nào trong số đó.

Kiểu dữ liệu phạm vi là đặc biệt đối với các phiên bản gần đây của PostgreSQL. Bạn có thể sử dụng những cái khác trong bất kỳ dbms SQL nào.

Loại mờ bạn cần phụ thuộc vào ứng dụng. Cách bạn truy vấn ngày mờ tùy thuộc vào kiểu dữ liệu hoặc cấu trúc bạn chọn. Bạn cần nắm chắc về loại độ mờ mà bạn cần lưu trữ và loại câu hỏi mà người dùng của bạn cần được trả lời. Và bạn cần kiểm tra để đảm bảo rằng cơ sở dữ liệu của bạn có thể trả lời các câu hỏi của họ.

Ví dụ, trong hệ thống pháp luật, ngày tháng có thể được ghi nhớ kém hoặc bị xóa. Ai đó có thể nói "Hôm đó là thứ Năm nào đó trong tháng 1 năm 2014. Tôi biết đó là thứ Năm, vì đó là ngày nhặt rác "hoặc" Đó là tuần đầu tiên trong tháng 6 hoặc tháng 7 năm ngoái ". ​​Để ghi lại kiểu mờ ảo đó, bạn cần một bảng khác.

Hoặc dấu bưu điện có thể bị mờ để bạn chỉ có thể đọc "14, 2014". Bạn biết nó được đóng dấu bưu điện vào ngày 14, nhưng bạn không biết là tháng nào. Một lần nữa, bạn cần một bảng khác.

Một số (tất cả?) Trong số này sẽ không cung cấp cho bạn logic ba giá trị trừ khi bạn vượt qua một số vòng lặp. ("Có thể" không phải là giá trị Boolean hợp lệ.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ứng dụng Spring Boot không thể truy cập PostgreSQL bằng thông tin đăng nhập từ Kubernetes secret

  2. Chọn các ký tự lạ trên văn bản, không hoạt động với toán tử LIKE

  3. Liệt kê các bảng trong lược đồ Postgres bằng cách sử dụng R

  4. Máy chủ PostgreSQL sẽ không tắt trên Lion (Mac OS 10.7)

  5. Làm thế nào để xác định độ phân giải lớn nhất của một INTERVAL?