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

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

Вопрос по датам. [D6]


Страницы:   1 2

asta ©   (2004-05-28 11:07:00) 

Уважаемые мастера, подскажите пожалуйста. У меня в Query есть поле "Дни рождения", нужно чтобы сортировка проиводилась сначала по месяцу, затем по дню. И еще, - текущий день, т.е. все, кто родился в этот день должны быть в начале. За ранее благодарю!


asta   (2004-05-28 16:06:00) [1]

[19] Sandman25+1 (28.05.04 15:44)
Огромное спасибо!!!


asta   (2004-05-28 16:03:00) [2]

[16] DenK_vrtz © (28.05.04 15:29)
Спасибо за такие "НУЖНЫЕ СОВЕТЫ", но если все знать и иметь, я бы не обращался сюда за помощью. А на счет английского, в свое время (по моему первому образованию) он (язык) был не так нужен. А сечас да, но это для меня второе высшее образование и уже многое упущено.


Sandman25+1   (2004-05-28 15:44:00) [3]

[18] asta ©   (28.05.04 15:38)

Выбираете Ваш TQuery в инспекторе, нажимаете мышкой на Params. Там должны быть 4 ... штучки. Выбираете их (все сразу или по очереди) и указываете: ParamType = ptInput, DataType = ftInteger (или ftSmallint).

В run-time:
Decode(Date, Y, M, D);
Query1.ParamByName('m1').AsInteger := M;
Query1.ParamByName('m2').AsInteger := M;
Query1.ParamByName('d1').AsInteger := D;
Query1.ParamByName('d2').AsInteger := D;

PS. Дальше без меня, уж извините. Вам очень нужно книжки почитать.


asta   (2004-05-28 15:38:00) [4]

[15] Sandman25+1 (28.05.04 15:23)
Извините, но я не знаю где это описать, я только начинаю в Delphi...


sniknik   (2004-05-28 15:36:00) [5]

> мне нужно чтобы были на первом месте.
сделай сортировку по выражению "абсолютное значение(текущая дата - день рождения)", у обоих дат в выражении еще надо год обрезать.
получиш сортировку какую хотел (с неточностью с рождениями 29 февраля)

это в общем, точнее (в коде) не могу, не знаю такой базы "Да, СУБД". :(


DenK_vrtz   (2004-05-28 15:29:00) [6]

>asta ©

а еще купить(скачать, попросить у кого-нить) литературу. Чаще смотреть справки и читать хелпы!
А еще уроки английского языка не надо было прогуливать :)


Sandman25+1   (2004-05-28 15:23:00) [7]

[14] asta ©   (28.05.04 15:16)

Опишите параметры design-time (ptInput, ftInteger).
А в run-time значения им присвойте...


asta   (2004-05-28 15:16:00) [8]

[13] Sandman25+1 (28.05.04 15:06)

Выдало такую ошибку:
Query1:Field 'm1'is of an unknown type.


Sandman25+1   (2004-05-28 15:06:00) [9]

select 1, extract (month from dotar),
         extract (day from dotar),
 a.tn, fam, im, ot, dotar, b.dptname
from bid a, bdp b
where a.ceh=b.ceh and pruv=0 and
(extract (month from dotar) <> :m1
  or extract (day from dotar) <> :d1)
union all
select 0, extract (month from dotar),
         extract (day from dotar),
 a.tn, fam, im, ot, dotar, b.dptname
from bid a, bdp b
where a.ceh=b.ceh and pruv=0 and
extract (month from dotar) = :m2
  and extract (day from dotar) = :d2
order by 1, 2, 3


asta   (2004-05-28 14:53:00) [10]

[2] Sandman25+1 (28.05.04 11:11)
У меня первоначально так:
select a.tn, fam, im, ot,dotar, b.dptname
from bid a, bdp b
where a.ceh=b.ceh and pruv=0
order by den, fam
где dotar - поле с датой рождения. Не знаю как Ваш запрос применить здесь.


asta   (2004-05-28 14:40:00) [11]

[4] DenK_vrtz © (28.05.04 11:15)
цветом я знаю как выделить, мне нужно чтобы были на первом месте.


Fay   (2004-05-28 14:40:00) [12]

- СУБД?
- Да, СУБД.....

8)


asta   (2004-05-28 14:34:00) [13]

[3]Sandman25+1   (28.05.04 11:11)
Я только вошел в сеть еще не пробовал, но спасибо.


asta   (2004-05-28 14:31:00) [14]

[6]
Прошу прощения, - Интернет у меня отключился. Да СУБД, цветом я знаю как выделить, мне нужно чтобы были на первом месте.


Sandman25+1   (2004-05-28 11:23:00) [15]

[6] Соловьев ©   (28.05.04 11:20)

От СУБД зависит только способ получить месяц и день. Сам алгоритм (=логика) запроса от СУБД не зависит :)


Соловьев   (2004-05-28 11:20:00) [16]

Блин, телепаты:) И я хочу. Научите! :)))


Sandman25+1   (2004-05-28 11:19:00) [17]

[4] DenK_vrtz ©   (28.05.04 11:15)

Или locate сделать. Возможно, по кнопке.


DenK_vrtz   (2004-05-28 11:15:00) [18]

>т.е. все, кто родился в этот день должны быть в начале

может их лучше цветом другим выделить? :)


Sandman25+1   (2004-05-28 11:12:00) [19]

Хотя лучше обойтись без union, добавив case


Sandman25+1   (2004-05-28 11:11:00) [20]

select 1, month(mydate), day(mydate), *
 from mytable
 where month(mydate) <> month(today)
   or day(mydate) <> day(today)
union all
select 0, month(mydate), day(mydate), *
 from mytable
 where month(mydate) = month(today)
   and day(mydate) = day(today)
 order by 1, 2, 3


Страницы:   1 2

Наверх

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