IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> TDate, у кого сегодня день рождения?..
сообщение
Сообщение #1


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Здравствуйте.
Ситуация: есть база данных людей. Одно из полей - дата рождения. TDate.
Задача: надо выбрать тех, у кого сегодня день рождения (а еще лучше - тех, у кого день рождения попал в интервал +-3 дня от сегодняшней даты).
Проблема: грубо говоря, дата хранится в виде "сколько дней прошло от 30 декабря 1899". то есть найти тех, кто родился _сегодня_ - не проблема. А тех, кто родился в этот день n лет назад - не знаю как sad.gif
Можно, конечно, сделать перебор по годам... но что-то меня такой вариант не радует.

Подскажете что-нибудь?
---
Нашла DecodeDate
Уже лучше, но не идеальный вариант (воспользоваться фильтром не получится). Так что вопрос актуален.

Сообщение отредактировано: мисс_граффити -


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Юля, еще один вариант - использовать SQL-Query... Только что создал маленькую табличку в Access-е, заполнил ее поле DateOfBirth разными датами, и связал TADOQuery с TDBGrid-ом... А заполняется Query вот так:

procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOQuery1 do begin
with SQL do begin
Clear;
Add('SELECT id, DateOfBirth');
Add('FROM Table1');
Add('WHERE (((Abs(DatePart("y",[DateOfBirth])-DatePart("y",Now())))<=' +
Edit1.Text + '))');
end;
Open;
end;
end;

(в Edit1 - задаваемый тобой интервал, количество дней +/- от сегодняшнего числа)...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 6:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name