Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

SELECT!!! Извлечение данных по дню месяца и месяцу года.   Найти похожие ветки 

 
Sugrob ©   (2003-10-23 19:38) [0]

Помогите, пжлса, решить такую задачу.
К примеру имеем таблицу сотрудников. Поля такие:
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. Вычленял номер дня и месяца. Все бы хорошо, но сделать сортировку в нужном порядке - не получилось, т.к. индекс основан и на ГОДЕ рождения...

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


 
Rad ©   (2003-10-23 19:51) [1]

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


 
Sugrob ©   (2003-10-23 20:07) [2]

>Rad ©

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


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

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


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

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


 
Johnmen ©   (2003-10-23 22:50) [5]

>anatolyk (23.10.03 22:34)

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



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
6-41787
Strayker
2003-09-18 23:40
2003.11.13
Как выключить все компьютеры в сети?


1-41335
Ganjo
2003-10-30 18:27
2003.11.13
Компонет Edit: Как запретить ввод буквенных символов


1-41172
Марат
2003-11-03 06:30
2003.11.13
Цвет


8-41753
Ozone
2003-07-07 09:34
2003.11.13
Рисование на рабочем столе


7-42150
Ученик
2003-08-26 23:06
2003.11.13
Запрет доступа к определенным портам на линейке Windows NT