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

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

Снова SQL


Страницы:   1 2

glow ©   (2003-09-23 10:15:00) 

Мастера, подскажите пожалуйста.
В запросе можно ли написать что-нибудь типа
......(G - EXTRACT(YEAR FROM A.DATR)<= 26....
где G - заданный год(например, 1998) А.DATR - дата рождения, вобщем определить возраст не болше 26


Sandman25   (2003-09-25 13:02:00) [21]

Informix.
G - это поле в таблице? Или имя параметра? Если второе, то вместо него вставьте его значение:

Query. Sql.Text := "select * from trn_docum where (("1.1."||"
+ IntToStr(G)+")-bank_date)/365 < 1")


glow   (2003-09-25 13:01:00) [22]


> И не должна работать. Может, надо
> ..(G - EXTRACT(YEAR FROM A.DATR))<= 26....

ответ

> Если версия IB сервера не младше 6.0 или сервер представлен
> клоном IB, таким, как FireBird или Yaffil.

А то что скобки не хватает это опечатка


glow   (2003-09-25 12:53:00) [23]


> Вот такой запрос на моей базе работает

Какая база?
Пишу тот же запрос только ||G вместо 2003 - Capability not supported


MsGuns   (2003-09-25 12:52:00) [24]

>glow © (25.09.03 12:30) [14]
>не работает, также как и ......(G - EXTRACT(YEAR FROM A.DATR)<= 26....

И не должна работать. Может, надо
..(G - EXTRACT(YEAR FROM A.DATR) )<= 26....


Sandman25   (2003-09-25 12:40:00) [25]

Что значит "не работает"? Поподробнее можно?

Вот такой запрос на моей базе работает
select * from trn_docum where (("1.1."||2003)-bank_date)/365 < 1
и выдает все данные, начиная с 2002 года


glow   (2003-09-25 12:30:00) [26]


> Sandman25 © (23.09.03 15:51) [10]
> [9] glow © (23.09.03 14:17)
>
> Да все реально даже для Paradox. В крайнем случае из date("1.1."||G)
> вычитаешь DATR, получаешь разницу в днях. Затем делишь ее
> на 365

не работает, также как и ......(G - EXTRACT(YEAR FROM A.DATR)<= 26....


glow   (2003-09-23 16:09:00) [27]


> Еще точнее, но тоже приблизительно - Sandman25 © (23.09.03
> 15:51).

примерно так (((StrToDate("1.1."||G)-A.DATR)/365)<=26)


Johnmen   (2003-09-23 16:00:00) [28]

>glow ©

Если требуется "количество полных лет", когда говорят о возрасте, то точно никак не получишь.
Приблизительно - как ты писал.
Еще точнее, но тоже приблизительно - Sandman25 © (23.09.03 15:51).


glow   (2003-09-23 15:59:00) [29]


> Затем делишь ее на 365

А как быть с високосными годами?


Sandman25   (2003-09-23 15:51:00) [30]

[9] glow © (23.09.03 14:17)

Да все реально даже для Paradox. В крайнем случае из date("1.1."||G) вычитаешь DATR, получаешь разницу в днях. Затем делишь ее на 365


glow   (2003-09-23 14:17:00) [31]


> Johnmen © (23.09.03 10:57) [6]

Paradox7, D5
Вычислить возраст в запросе вообще реально или нет (если не IB и не)FireBird или Yaffil


clickmaker   (2003-09-23 13:25:00) [32]

if (G - datepart(year, A.YEAR)) <= 26


Плохиш_   (2003-09-23 11:04:00) [33]

>Johnmen © (23.09.03 10:57) [6]


> А еще можно самому пробовать...


Я плякал :"(


Johnmen   (2003-09-23 10:57:00) [34]

>...несколько дней изучает SQL...

Какой SQL ? SQL вообще ? Тогда вопрос неуместен.
Какой-либо конкретный диалект SQLя ? Тогда уместен, если указывать тип СУБД, версию и т.п.
:)
А еще можно самому пробовать...


glow   (2003-09-23 10:48:00) [35]


> Если версия IB сервера не младше 6.0 или сервер представлен
> клоном IB, таким, как FireBird или Yaffil.

Спасибо за разъяснения:))
Человек, всего несколько дней изучает SQL, а вы тут загадками пишите:((


Johnmen   (2003-09-23 10:43:00) [36]

:)
Перевожу:
Если версия IB сервера не младше 6.0 или сервер представлен клоном IB, таким, как FireBird или Yaffil.


Плохиш_   (2003-09-23 10:41:00) [37]

>glow

Про SQL почитать не пробовал?


glow   (2003-09-23 10:30:00) [38]


> Можно, if (IB>=6.0) or (IB in [FB,YA])
> :)))

?:)?:)


Johnmen   (2003-09-23 10:22:00) [39]

Можно, if (IB>=6.0) or (IB in [FB,YA])
:)))


Страницы:   1 2

Наверх

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