Поскольку в «Полдень во вторник в августе» («Воскресный полдень на острове Ла-Гранд-Жатт»?) Не указан год, единственное реальное решение - это ваша таблица всех компонентов даты и времени, все обнуляемые.
В противном случае вы объединяете свои данные.
У вас здесь есть две (по общему признанию) вещи: удобочитаемая строка, описание даты и диапазон возможных дат.
Если вы можете указать хотя бы диапазон, вы можете сделать это:
create table artwork {
artwork_id int not null primary key,
name varchar(80),
... other columns
date_description varchar(80),
earliest_possible_creation_date datetime
latest_possible_creation_date datetime
}
insert into artwork(
name,
date_description,
earliest_possible_creation_date,
latest_possible_creation_date
) values (
'A Sunday Afternoon on the Island of La Grande Jatte',
'Mid-afternoon on a Tuesday in August'
'1884-01-01',
'1886-12-31'
), (
'Blonde Woman with Bare Breasts',
'Summer 1878'
'1878-05-01',
'1878-08-31'
), (
'Paulo on a Donkey',
'Early June 1923',
'1923-06-01'
'1923-06-15'
);
Это позволяет вам отображать все, что вы хотите, и искать:
select * from artwork
where @some_date between
earliest_possible_creation_date and latest_possible_creation_date;
И, очевидно, «дата создания» (дата, когда художник создал работу) полностью отличается от «даты, изображенной в работе», если последняя вообще может быть определена.