Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выбор значений по дате+время [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]

А поля какого типа? Их складывать можно?


Наверх

Титульная страница Поиск, карта сайта Написать письмо