Помогите по работе с датами

Запросы, планы, оптимизация запросов, ...

Модераторы: 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'))
НЕ РАБОТАЕТ я вывожу все дата которых должна быть в августе но выводяться все записи.

Как правильно работать с датой. Чтобы вывести записи за определенный промежуток дней.
:roll:

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Re: Помогите по работе с датами

Сообщение 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

Re: Помогите по работе с датами

Сообщение 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'))
НЕ РАБОТАЕТ я вывожу все дата которых должна быть в августе но выводяться все записи.

Как правильно работать с датой. Чтобы вывести записи за определенный промежуток дней.
:roll:
Поставь 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.

Karp
Сообщения: 41
Зарегистрирован: 30 апр 2005, 16:30

Сообщение Karp » 22 авг 2005, 12:42

Nikolai_jakovlev писал(а):between или просто where.
читать здесь:

http://www.ibase.ru/v6/doc/langref.zip

и не задавать глупых вопросов

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.

Ответить