Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запросом выбрать клиентов с ;днем рожд. в ближайшие 10 дн. [D5]


alextov ©   (2003-05-26 10:26:00) 

Есть таблица с клиентами, в ней поле DR(дата рождения, напр "01.10.1955"),тип-date.
Нужно из таблицы клиентов запросом выбрать тех у кого день рождения в ближайшие 10 дней.
Select * from klienti where ???
Че-то я пробуксовываю, подскажите если кто знает , плз...


alextov   (2003-05-26 11:42:00) [1]

Всем спасибо, запустил


SergSuper   (2003-05-26 11:30:00) [2]

для MS SQL
допустим есть таблица Age(years int) с числами от 1 до 100 (можно от 18 до 60)

тогда так


select * from klienti k, Age a
where dateadd(yy, a.years, k.birthday) between GetDate() and GetDate() + 10


т.е. идет перебор каждого клиента на предмет сколько ему лет
алгоритм конечно не эффективный, но если клиентов не много то вполне можно использовать


Sergey13   (2003-05-26 11:28:00) [3]

Пробовал на 8.1.6

select * from table_clients
where to_number(to_char(dr,"ddd"))
between to_number(to_char(sysdate,"ddd")) and to_number(to_char(sysdate+10,"ddd"))


Reindeer Moss Eater   (2003-05-26 11:16:00) [4]

Для MSSQL:
Create View VBDays(Tn) as
Select Tn From Peoples
Where
(Month(BDate) = Month(GetDate()) And Day(BDate) - Day(GetDate()) Between 0 and 10)
OR
(
Month(BDate) = Month(GetDate() + 10) And Day(BDate) <= Day(GetDate()+10) And Month(GetDate()+10) <> Month(GetDate())
)

Для Оракла то же самое, но вместо функций Month и Day применить
Extract(MONTH From BDate) и Extract(DAY From BDate)

BDate - поле даты рождения, TN - ключ работника


stone   (2003-05-26 10:59:00) [5]

на счет Оракла не скажу, но в MSSQL есть функция DATEPART( datepart, date). Аналогичная функция должна быть и в Оракле.


alextov   (2003-05-26 10:49:00) [6]

sorry, прозевал - ORACLE 8.0.5


Md   (2003-05-26 10:34:00) [7]

СУБД какая?


Наверх

Титульная страница Поиск, карта сайта Написать письмо