Выборка в зависимости от даты

Модераторы: kdv, CyberMax

Ответить
SAN_i
Сообщения: 14
Зарегистрирован: 31 июл 2006, 19:24

Выборка в зависимости от даты

Сообщение SAN_i » 04 мар 2010, 15:14

Здравствуйте.

Есть таблица в которой дата указана не одним полем типа date, а тремя типа varchar, пример данных:
sday smonth syear
01 10 2009
23 11 2009
........

Собственно проблема в том что нужно выполнить select в котором выбрать данные в зависимости от даты, т. е. скажем выбрать те у которых дата более старая чем сегодня, но вот как сравнить дату в таком виде никак не могу догадаться :(
Думал в разделе where как то преобразовать три поля в значение типа date и потом уже сравнивать, но вот незнаю какой функцией это можно реализовать.

Подскажите как лучше сделать выборку?

SAN_i
Сообщения: 14
Зарегистрирован: 31 июл 2006, 19:24

Re: Выборка в зависимости от даты

Сообщение SAN_i » 04 мар 2010, 15:16

возможен ли вариант с написанием функции которой бы передовались значения день, месяц, год и которая возвращала бы date с подставкой этой функции в select? Или есть какоето более правильное решение?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Выборка в зависимости от даты

Сообщение kdv » 04 мар 2010, 15:53

добавить столбец date, заполнить его чем-то типа
cast(sday||'.'||smonth||'.'|| syear as date)
и искать уже по этому столбцу. Или не создавать столбец, а искать по дате, полученной указанным cast. Просто если столбец не хранить, то много cast "замусорят" запрос. Ну и, столбец еще проиндексировать можно. Дело вкуса и возможностей.

Ответить