![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выбор значений по дате+время [D5, Paradox]
BarON21 © (2009-12-04 14:14:00)Всем доброго дня!
Возникла такая проблема, есть парадоксовская база в нем два отдельных поля даты и времени, мне нужно сделать SQL запрос чтобы можно было бы выбирать записи подходящие под интервал даты и времени, который я задаю
у сделал вот такой запрос, но он неправильный
select * from zakaz where (date_zakaz> "'+dateedit1.text+'" and date_zakaz<"'+dateedit2.text+'") or (date_zakaz="'+dateedit1.text+'" AND time_zakaz>="'+maskedit1.text+'") OR (date_zakaz="'+dateedit2.text+'" and time_zakaz<="'+maskedit2.text+'") order by date_zakaz,time_zakaz
Кто что посоветует? Может у кого была такая проблема?
Всем заранее спасибо.
sniknik (2009-12-08 08:04:00) [1]> Твою убеждённость "наверняка есть" я не разделяю. В LocalSQL я такой возможности не нашел.
что нет cast в BDE? а с 5й версии в парадоксе есть timestamp... по моему все очевидно.
Германн (2009-12-08 02:57:00) [2]
> Anatoly Podgoretsky © (07.12.09 09:05) [16]
>
> > Германн (07.12.2009 02:03:15) [15]
>
> А какая разница, все равно возникнем.
>
И я тоже "возникну" при случае. :)
Германн (2009-12-08 02:49:00) [3]
> sniknik © (07.12.09 09:32) [17]
>
> > Но автор использует BDE.
> ну вот пусть и найдет там возможность такого суммирования
> (наверняка есть)
Твою убеждённость "наверняка есть" я не разделяю. В LocalSQL я такой возможности не нашел.
sniknik (2009-12-07 09:32:00) [4]> Но автор использует BDE.
ну вот пусть и найдет там возможность такого суммирования (наверняка есть), и вопрос решён. я же сказал, причем до того как узнал что используется (знал бы о BDE может вообще молчал, а может проверил бы и сказал поконкретнее), это только принцип.
Anatoly Podgoretsky (2009-12-07 09:05:00) [5]> Германн (07.12.2009 02:03:15) [15]
А какая разница, все равно возникнем.
Германн (2009-12-07 02:03:00) [6]
> sniknik © (07.12.09 01:29) [14]
>
> > Я имел в виду PARADOX, блин. :)
> а тоже, только "под" jet-ом.
Но автор использует BDE.
Давай тогда ругать BDE. Но тогда ИШ "возникнет". :)
sniknik (2009-12-07 01:29:00) [7]> Я имел в виду PARADOX, блин. :)
а тоже, только "под" jet-ом.
Германн (2009-12-07 01:08:00) [8]
> sniknik © (06.12.09 13:15) [9]
>
> > Парадокс, блин.
> ничего не парадокс
Я имел в виду PARADOX, блин. :)
Германн (2009-12-07 01:06:00) [9]
> BarON21 © (06.12.09 19:58) [10]
>
>
> > > "неправильный" это не работает как хотелось бы, т.е.
> выбрать
> > > все записи из дата-времянного интервала> Выбирает не
> то
> > или выдает ошибку?
>
>
> Выбирает не то
>
У меня тестовый проект выдаёт ошибку BDE - type mismatch.
Сможешь написать свой тестовый проект без ран-тайм ошибки, выложи. Посмотрю.
P.S.
В выложенном тестовом проекте ес-но должны присутствовать и необходимые файлы db.
BarON21 (2009-12-06 20:00:00) [10]
> select * from zakaz where ((date_zakaz+time_zakaz) > :start_datetime
> and (date_zakaz+time_zakaz) <= :end_datetime) order by date_zakaz,
> time_zakazQuery1.ParamByName('start_datetime').asdatetime:
> = Now() - 30;Query1.ParamByName('end_datetime').asdatetime:
> = Now();не знаю сработает или нет в том движке который ты
> используешь, но принцип такой.
я использую парадоксовские таблицы (файлы лежат в папке на сет диске )+ BDE, а в приложении использую только!! TQuery
BarON21 (2009-12-06 19:58:00) [11]
> > "неправильный" это не работает как хотелось бы, т.е. выбрать
> > все записи из дата-времянного интервала> Выбирает не то
> или выдает ошибку?
Выбирает не то
sniknik (2009-12-06 13:15:00) [12]> Парадокс, блин.
ничего не парадокс, мало ли как тип хранится, главное как он в операциях представляется... в jet это дататайм для обоих типов, т.что в нем работает. (кстати в дельфи тоже самое)
Германн (2009-12-06 01:48:00) [13]
> sniknik © (06.12.09 01:21) [7]
Похоже, что АП
> Anatoly Podgoretsky © (05.12.09 13:35) [4]
прав.
Парадокс, блин.
sniknik (2009-12-06 01:21:00) [14]select * from zakaz where ((date_zakaz+time_zakaz) > :start_datetime and (date_zakaz+time_zakaz) <= :end_datetime)
order by date_zakaz,time_zakaz
Query1.ParamByName('start_datetime').asdatetime:= Now() - 30;
Query1.ParamByName('end_datetime').asdatetime:= Now();
не знаю сработает или нет в том движке который ты используешь, но принцип такой.
Германн (2009-12-06 01:05:00) [15]
> "неправильный" это не работает как хотелось бы, т.е. выбрать
> все записи из дата-времянного интервала
>
Выбирает не то или выдает ошибку?
BarON21 (2009-12-05 19:06:00) [16]
> Что значит "неправильный"?Сначала сделай запрос с использованием
> параметров, потом будем смотреть на скобки.
"неправильный" это не работает как хотелось бы, т.е. выбрать все записи из дата-времянного интервала
вот запрос с параметрами
select * from zakaz where (date_zakaz> :start_date and date_zakaz<= :end_date) or (date_zakaz= :start_date AND time_zakaz>= :start_time) OR (date_zakaz= :end_date and time_zakaz<= :end_time ) order by date_zakaz,time_zakaz
Query1.ParamByName('start_date').asstring := "01.01.2009";
Query1.ParamByName('start_time').asstring := "20:00:00";
Query1.ParamByName('end_date').asstring := "05.01.2009";
Query1.ParamByName('end_time').asstring := "08:00:00";
мне нужно из таблицы выбрать все записи от start_date и start_time до end_date и end_time
Anatoly Podgoretsky (2009-12-05 13:35:00) [17]Вообще то большинство операций со временем и датой бессмысленно, дата типа DateTime, а время строка
Ну так это Парадокс, а хорошую базу Парадоксом не назовут.
Германн (2009-12-05 01:59:00) [18]
> сделал вот такой запрос, но он неправильный
Что значит "неправильный"?
Сначала сделай запрос с использованием параметров, потом будем смотреть на скобки.
BarON21 (2009-12-04 18:56:00) [19]Время - time Дата - date - стандартные парадоксовские форматы
Sergey13 (2009-12-04 15:13:00) [20]А поля какого типа? Их складывать можно?