![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Снова SQL
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])
:)))