PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да представим дати с несигурност в PostgreSQL

Има няколко различни начина за подход към неясни дати. В PostgreSQL можете да използвате

  • двойка колони с дата (earliest_possible_date, latest_possible_date),
  • колона за дата и колона за точност („2012-01-01“, „година“), или
  • тип данни за диапазон (диапазон от дати), или
  • varchar ('2013-01-2?', '2013-??-05') или
  • друга таблица или таблици с някой от тези типове данни.

Типът данни диапазон е характерен за последните версии на PostgreSQL. Можете да използвате останалите във всеки SQL dbms.

Видът размиване, от който се нуждаете, зависи от приложението. Начинът, по който правите заявки за размити дати, зависи от това кой тип данни или структура изберете. Имате нужда от твърда представа за това какви видове неясноти трябва да съхранявате и за вида въпроси, на които вашите потребители трябва да отговорят. И трябва да тествате, за да сте сигурни, че вашата база данни може да отговори на въпросите им.

Например, в правните системи датите може да се запомнят зле или да бъдат обезобразени. Някой може да каже „Беше някакъв четвъртък през януари 2014 г. Знам беше четвъртък, защото беше денят за извозване на боклука", или „Беше първата седмица през юни или юли миналата година". За да запишете този вид неясноти, имате нужда от друга таблица.

Или пощенско клеймо може да е повредено, така че да можете да прочетете само „14, 2014 г.“. Знаете, че е с пощенско клеймо на 14-ти, но не знаете кой месец. Отново имате нужда от друга маса.

Някои (всички?) от тях няма да ви дадат тризначна логика, освен ако не прескочите някои обръчи. („Възможно“ не е валидна булева стойност.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групова актуализация в postgreSQL с помощта на unnest

  2. Символ с поредица от байтове 0x9d в кодиране „WIN1252“ няма еквивалент в кодиране „UTF8“

  3. Не правете нищо в процедура за задействане

  4. Как мога да гарантирам, че материализираният изглед винаги е актуален?

  5. Как да добавя нова колона в таблица след 2-ра или 3-та колона в таблицата с помощта на postgres?