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

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

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

Сообщение SAN_i » 04 мар 2010, 16: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, 16:16

возможен ли вариант с написанием функции которой бы передовались значения день, месяц, год и которая возвращала бы date с подставкой этой функции в select? Или есть какоето более правильное решение?
SAN_i
 
Сообщения: 14
Зарегистрирован: 31 июл 2006, 19:24

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

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

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


Вернуться в Проектирование БД и запросов



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1