Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по датам.   Найти похожие ветки 

 
asta ©   (2004-05-28 11:07) [0]

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


 
Соловьев ©   (2004-05-28 11:09) [1]

СУБД?


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

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


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

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


 
DenK_vrtz ©   (2004-05-28 11:15) [4]

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

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


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

[4] DenK_vrtz ©   (28.05.04 11:15)

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


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

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


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

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

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


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

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


 
asta ©   (2004-05-28 14:34) [9]

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


 
Fay ©   (2004-05-28 14:40) [10]

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

8)


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

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


 
asta ©   (2004-05-28 14:53) [12]

[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 - поле с датой рождения. Не знаю как Ваш запрос применить здесь.


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

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 15:16) [14]

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

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


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

[14] asta ©   (28.05.04 15:16)

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


 
DenK_vrtz ©   (2004-05-28 15:29) [16]

>asta ©

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


 
sniknik ©   (2004-05-28 15:36) [17]

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

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


 
asta ©   (2004-05-28 15:38) [18]

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


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

[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 16:03) [20]

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


 
asta ©   (2004-05-28 16:06) [21]

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



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

Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.029 c
1-1086324302
Andrushk
2004-06-04 08:45
2004.06.20
Задержка, пауза


1-1086706164
Владимир
2004-06-08 18:49
2004.06.20
Проблема с Imagelist


14-1086168388
Nick-from
2004-06-02 13:26
2004.06.20
Как математически записать, что n предметов


9-1077296031
Electon
2004-02-20 19:53
2004.06.20
как грабить DirectX?


8-1080807221
ИЛЕЙ
2004-04-01 12:13
2004.06.20
Замедление и ускорение звука





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский