Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Nikolai_jakovlev
- Сообщения: 15
- Зарегистрирован: 12 май 2005, 15:12
Сообщение
Nikolai_jakovlev » 22 авг 2005, 10:32
select * from SV_SKL
where ((sv_dat>='01.08.2005')or(sv_dat<='31.08.2005'))
НЕ РАБОТАЕТ я вывожу все дата которых должна быть в августе но выводяться все записи.
Как правильно работать с датой. Чтобы вывести записи за определенный промежуток дней.

-
SAMZ
- Сообщения: 128
- Зарегистрирован: 21 мар 2005, 08:17
Сообщение
SAMZ » 22 авг 2005, 10:43
Nikolai_jakovlev писал(а):select * from SV_SKL
where ((sv_dat>='01.08.2005')or(sv_dat<='31.08.2005'))
НЕ РАБОТАЕТ я вывожу все дата которых должна быть в августе но выводяться все записи.
Как правильно работать с датой. Чтобы вывести записи за определенный промежуток дней.
:roll:
Поставь AND вместо OR
А еще лучше BETWEEN
where (sv_dat BETWEEN '01.08.2005' and '31.08.2005')
-
Nikolai_jakovlev
- Сообщения: 15
- Зарегистрирован: 12 май 2005, 15:12
Сообщение
Nikolai_jakovlev » 22 авг 2005, 10:53
SAMZ писал(а):Nikolai_jakovlev писал(а):select * from SV_SKL
where ((sv_dat>='01.08.2005')or(sv_dat<='31.08.2005'))
НЕ РАБОТАЕТ я вывожу все дата которых должна быть в августе но выводяться все записи.
Как правильно работать с датой. Чтобы вывести записи за определенный промежуток дней.

Поставь AND вместо OR
А еще лучше BETWEEN
where (sv_dat BETWEEN '01.08.2005' and '31.08.2005')
попробывал and и between не помогло он всеравно выводит все даты
а что за between для чего он и какие функции выполняет?
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 22 авг 2005, 11:10
попробывал and и between не помогло он всеравно выводит все даты
гонево. или не то делаешь, или не туда смотришь.
а что за between для чего он и какие функции выполняет?
из лесу вышел? купи учебник по sql

-
Nikolai_jakovlev
- Сообщения: 15
- Зарегистрирован: 12 май 2005, 15:12
Сообщение
Nikolai_jakovlev » 22 авг 2005, 12:20
kdv писал(а):попробывал and и between не помогло он всеравно выводит все даты
гонево. или не то делаешь, или не туда смотришь.
а что за between для чего он и какие функции выполняет?
из лесу вышел? купи учебник по sql

а ты сам гонево если бы работало я бы не спрашивал значит ты просто тормоз который не знает всех тонкостей, а все вокруг сплошные лохи.
А ты кто что слишком много знаешь так скажи почему не работает а не словами кидайся.
-
Nikolai_jakovlev
- Сообщения: 15
- Зарегистрирован: 12 май 2005, 15:12
Сообщение
Nikolai_jakovlev » 22 авг 2005, 12:27
при всем уважении ведь при равенстве конкретной дате он выдает записи с правильной записью, и если есть маленькая рабочая база пришлите у кого она работает с between или просто where.
-
Nikolai_jakovlev
- Сообщения: 15
- Зарегистрирован: 12 май 2005, 15:12
Сообщение
Nikolai_jakovlev » 22 авг 2005, 13:41
between работает на числовых полях как только касается поле c датой он перестает адекватно реагировать. т.е. она просто не работает что можно сделать может преобразовать в строковую или числовое поле с датой. Подскажите.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 22 авг 2005, 13:47
А ты кто что слишком много знаешь так скажи почему не работает а не словами кидайся.
я не знаю, почему у всех работает, а у тебя - нет.
берем базу employee.fdb. выдаем запрос:
select * from salary_history
where change_date between '01.09.1993' and '30.09.1993'
все работает прекрасно.
p.s. я тот, кто сделал *.ibase.ru.