Има няколко различни начина за подход към неясни дати. В PostgreSQL можете да използвате
- двойка колони с дата (earliest_possible_date, latest_possible_date),
- колона за дата и колона за точност („2012-01-01“, „година“), или
- тип данни за диапазон (диапазон от дати), или
- varchar ('2013-01-2?', '2013-??-05') или
- друга таблица или таблици с някой от тези типове данни.
Типът данни диапазон е характерен за последните версии на PostgreSQL. Можете да използвате останалите във всеки SQL dbms.
Видът размиване, от който се нуждаете, зависи от приложението. Начинът, по който правите заявки за размити дати, зависи от това кой тип данни или структура изберете. Имате нужда от твърда представа за това какви видове неясноти трябва да съхранявате и за вида въпроси, на които вашите потребители трябва да отговорят. И трябва да тествате, за да сте сигурни, че вашата база данни може да отговори на въпросите им.
Например, в правните системи датите може да се запомнят зле или да бъдат обезобразени. Някой може да каже „Беше някакъв четвъртък през януари 2014 г. Знам беше четвъртък, защото беше денят за извозване на боклука", или „Беше първата седмица през юни или юли миналата година". За да запишете този вид неясноти, имате нужда от друга таблица.
Или пощенско клеймо може да е повредено, така че да можете да прочетете само „14, 2014 г.“. Знаете, че е с пощенско клеймо на 14-ти, но не знаете кой месец. Отново имате нужда от друга маса.
Някои (всички?) от тях няма да ви дадат тризначна логика, освен ако не прескочите някои обръчи. („Възможно“ не е валидна булева стойност.)