|
|
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Всем привет! В таблице есть две даты date1 и date2(date2 всегда позже date1). Надо выбрать из неё те строки у которых разница между этими датами не меньше 5-ти лет. Я делаю это так: select person_id from lc_table where (extract(year from date2)-extract(year from date1))>=5; Но это не совсем то что мне нужно. Например 05.05.1995 и 05.01.2000. 5 лет не прошло, но мой запрос выберет эту строку. А мне важно чтобы точно 5 лет. Как так сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:21 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
А если year from (date2-date1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:23 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
не помогает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:28 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Версия сервера какая и какой диалект юзаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:33 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
диалект 3, сервер - interbase 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:36 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Боюсь придется реализовывать через UDF - аналог MSSQL'ой DateAdd(datepart, number, date) :((( Т.к. я лично не вижу арифметического решения этой проблеммы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:45 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Гы ... а где же он не выберет тебе эту строку когда ты сравниваешь ГОДА а не ДАТЫ !!! конечно разница в годах у тебя 5 лет а в датах 4 года с лишним ... Сравнивай даты полностью. А из результата извлекай год. Для этого обзаведись переменной...... внимательнее надо быть .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:52 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Можно еще конечно написать что-то типа такого: (extract(year from date2)-extract(year from date1))>=5 and (extract(month from date2)-extract(month from date1))>=0 так, по идее, должно быть с точностью до месяца, но такого плана запросы нагрузят сервер ОЧЕНЬ сильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 12:54 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
2 Kull Damned Видишь ли, тогда надо сравнивать еще и дни..... разница в годах будет даже если у тебя дни первый больше второго ... Теперь представь насколько еще поднимается загрузка сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:00 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
2 KeepeR А то я не знаю... %) Ты лучше подскажи как будет выглядеть запрос в твоем варианте. :)) Я считаю что без UDF'ки будет облом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:07 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
тогда такой вопрос: я только недавно работаю с ib, как выглядит выражение, которое позволит получить новую дату : newdate=( date2 - 5 лет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:16 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
anastassiaполучить новую дату : newdate=( date2 - 5 лет) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:33 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
а почему никто не предлагает date2-date1>1825 где 1825 = 5*365 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:36 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:37 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Ну, а чтобы високосные шода обрабатывать, надо ХП писать ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:38 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, всё получилось! Мимопроходящий - отдельное огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:45 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
2 Мимопроходящий Кстати, по performance'у что будет быстрее: такая строка с cast'ами или то же самое внутри UDF, но с числами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 14:07 |
|
||
|
помогите составить запрос с датами.
|
|||
|---|---|---|---|
|
#18+
А between не поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 21:58 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32393644&tid=1579280]: |
0ms |
get settings: |
5ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 494ms |

| 0 / 0 |
