Форум: "Базы";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
ВнизВыбор значений по дате+время Найти похожие ветки
← →
BarON21 © (2009-12-04 14:14) [0]Всем доброго дня!
Возникла такая проблема, есть парадоксовская база в нем два отдельных поля даты и времени, мне нужно сделать 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
Кто что посоветует? Может у кого была такая проблема?
Всем заранее спасибо.
← →
Sergey13 © (2009-12-04 15:13) [1]А поля какого типа? Их складывать можно?
← →
BarON21 © (2009-12-04 18:56) [2]Время - time Дата - date - стандартные парадоксовские форматы
← →
Германн © (2009-12-05 01:59) [3]
> сделал вот такой запрос, но он неправильный
Что значит "неправильный"?
Сначала сделай запрос с использованием параметров, потом будем смотреть на скобки.
← →
Anatoly Podgoretsky © (2009-12-05 13:35) [4]Вообще то большинство операций со временем и датой бессмысленно, дата типа DateTime, а время строка
Ну так это Парадокс, а хорошую базу Парадоксом не назовут.
← →
BarON21 © (2009-12-05 19:06) [5]
> Что значит "неправильный"?Сначала сделай запрос с использованием
> параметров, потом будем смотреть на скобки.
"неправильный" это не работает как хотелось бы, т.е. выбрать все записи из дата-времянного интервала
вот запрос с параметрами
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
← →
Германн © (2009-12-06 01:05) [6]
> "неправильный" это не работает как хотелось бы, т.е. выбрать
> все записи из дата-времянного интервала
>
Выбирает не то или выдает ошибку?
← →
sniknik © (2009-12-06 01:21) [7]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:48) [8]
> sniknik © (06.12.09 01:21) [7]
Похоже, что АП
> Anatoly Podgoretsky © (05.12.09 13:35) [4]
прав.
Парадокс, блин.
← →
sniknik © (2009-12-06 13:15) [9]> Парадокс, блин.
ничего не парадокс, мало ли как тип хранится, главное как он в операциях представляется... в jet это дататайм для обоих типов, т.что в нем работает. (кстати в дельфи тоже самое)
← →
BarON21 © (2009-12-06 19:58) [10]
> > "неправильный" это не работает как хотелось бы, т.е. выбрать
> > все записи из дата-времянного интервала> Выбирает не то
> или выдает ошибку?
Выбирает не то
← →
BarON21 © (2009-12-06 20:00) [11]
> 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
← →
Германн © (2009-12-07 01:06) [12]
> BarON21 © (06.12.09 19:58) [10]
>
>
> > > "неправильный" это не работает как хотелось бы, т.е.
> выбрать
> > > все записи из дата-времянного интервала> Выбирает не
> то
> > или выдает ошибку?
>
>
> Выбирает не то
>
У меня тестовый проект выдаёт ошибку BDE - type mismatch.
Сможешь написать свой тестовый проект без ран-тайм ошибки, выложи. Посмотрю.
P.S.
В выложенном тестовом проекте ес-но должны присутствовать и необходимые файлы db.
← →
Германн © (2009-12-07 01:08) [13]
> sniknik © (06.12.09 13:15) [9]
>
> > Парадокс, блин.
> ничего не парадокс
Я имел в виду PARADOX, блин. :)
← →
sniknik © (2009-12-07 01:29) [14]> Я имел в виду PARADOX, блин. :)
а тоже, только "под" jet-ом.
← →
Германн © (2009-12-07 02:03) [15]
> sniknik © (07.12.09 01:29) [14]
>
> > Я имел в виду PARADOX, блин. :)
> а тоже, только "под" jet-ом.
Но автор использует BDE.
Давай тогда ругать BDE. Но тогда ИШ "возникнет". :)
← →
Anatoly Podgoretsky © (2009-12-07 09:05) [16]> Германн (07.12.2009 02:03:15) [15]
А какая разница, все равно возникнем.
← →
sniknik © (2009-12-07 09:32) [17]> Но автор использует BDE.
ну вот пусть и найдет там возможность такого суммирования (наверняка есть), и вопрос решён. я же сказал, причем до того как узнал что используется (знал бы о BDE может вообще молчал, а может проверил бы и сказал поконкретнее), это только принцип.
← →
Германн © (2009-12-08 02:49) [18]
> sniknik © (07.12.09 09:32) [17]
>
> > Но автор использует BDE.
> ну вот пусть и найдет там возможность такого суммирования
> (наверняка есть)
Твою убеждённость "наверняка есть" я не разделяю. В LocalSQL я такой возможности не нашел.
← →
Германн © (2009-12-08 02:57) [19]
> Anatoly Podgoretsky © (07.12.09 09:05) [16]
>
> > Германн (07.12.2009 02:03:15) [15]
>
> А какая разница, все равно возникнем.
>
И я тоже "возникну" при случае. :)
← →
sniknik © (2009-12-08 08:04) [20]> Твою убеждённость "наверняка есть" я не разделяю. В LocalSQL я такой возможности не нашел.
что нет cast в BDE? а с 5й версии в парадоксе есть timestamp... по моему все очевидно.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.003 c