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

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

SELECT!!! Извлечение данных по дню месяца и месяцу года. [D6, IB6.x]


Sugrob ©   (2003-10-23 19:38:00) 

Помогите, пжлса, решить такую задачу.
К примеру имеем таблицу сотрудников. Поля такие:
1. ID INTEGER
2. NAME VARCHAR(50)
3. BITHDAY DATE (день рождения)

Необходимо извлечь только те данные, где:
1. ДЕНЬ рождения равен сегодняшнему дню или больше;
2. МЕСЯЦ рождения равен текущему месяцу или больше;
3. Год - все равно какой;

Т.е. нужно вывести список сотрудников, у которых день рождения сегодня или в ближайшие несколько дней (хотя можно и до конца года или месяца - это не принципиально). При этом записи должны быть отсортированы в следуюшем порядке: Месяц -> День -> Год

Например, имеем в базе записи:
1 Иванов 10.05.1985
2 Сидоров 27.11.1972
3 Петров 08.11.1976
4 Васильев 23.10.1965

Сегодня у нас 23.10.2003
после извлечения в НД долны содержаться записи:

4 Васильев 23.10.1965
3 Петров 08.11.1976
2 Сидоров 27.11.1972

Возможно будет другое решение, к примеру основанное не на TQuery, а на TTable. Я пробовал через TTable. Делал поля Calculated. Вычленял номер дня и месяца. Все бы хорошо, но сделать сортировку в нужном порядке - не получилось, т.к. индекс основан и на ГОДЕ рождения...

И просьба не предлагать вариант хранения в базе дня рождения в трех полях (день, месяц, год). Это принципиально важно...


Johnmen   (2003-10-23 22:50:00) [1]

>anatolyk (23.10.03 22:34)

"Казалось бы, а причем тут Лужков ?" (c) Доренко


anatolyk   (2003-10-23 22:34:00) [2]

в самом MSSQL, например, есть ф-ия Dateapart(part,date), которая выделяет из даты хоть год, хоть секунды.


Rad   (2003-10-23 20:14:00) [3]

2 Sugrob © (23.10.03 20:07) [2]
Ну там еще monthи dayможно EXTRACT. Заметил, да?
P.S. Вот это я понимаю, человек совершенно правильно отреагировал на ответ, без всяких там "а примерчик, ну плиииз" :))


Sugrob   (2003-10-23 20:07:00) [4]

>Rad ©

Замечательно! То что надо!


Rad   (2003-10-23 19:51:00) [5]

RTFM EXTRACT (year FROM <Field_Name>)и ORDER BY 1, 2, 3


Наверх

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