Каким будет хороший подход к хранению неточных/неточных дат?C#

Место общения программистов C#
Ответить
Anonymous
 Каким будет хороший подход к хранению неточных/неточных дат?

Сообщение Anonymous »


В приложении, над которым я работаю, мне нужно хранить некоторые метаданные, включающие даты, которые могут быть неточными. В качестве примера предположим, что я хочу сохранить дату выпуска продукта. Несколько примеров возможных дат, которые могут быть в моем наборе данных:
[*]2023-01-10 12:00:00 - мы точно знаем, когда он был выпущен (включая время), например. в это время у них было мероприятие по выпуску [*]10 января 2010 г. – время не знаю, но это была точная дата. [*]2000-01 – точной даты нет, но мы знаем, что это было в январе. [*]2000-1 квартал — точной даты нет, но мы знаем, что это был первый квартал. [*]1995 год — точной даты нет, известен только год. [*]1990-е - мы даже года не знаем, просто это было где-то в 90-х.
Моя цель — предоставить поисковый фильтр, который сможет обрабатывать все эти разные и неточные времена. Для контекста: я работаю на C#/.NET с PostgreSQL.

Я подумываю сохранить неточную дату в виде диапазона DateTime (имеющего «Начало» и «Конец»). Синтаксический анализ в основном означает определение формата (что можно сделать с помощью небольшого количества регулярных выражений) и последующую генерацию диапазона на основе этого. Поиск — это непростая задача. По сути, нам нужно вычислить пересечение этого диапазона и запрашиваемого диапазона; Я не уверен, можно ли это сделать в SQL, но это возможно. Одной из проблем этого подхода является преобразование этой структуры обратно в строку; Я думаю просто сохранить исходную строку, которую я изначально проанализировал.

Как вы думаете, это хороший подход? У вас есть идея получше?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»