Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1256587984
fuzzy
2009-10-26 23:13
2011.06.05
Не срабатывают breakpoints при отладке ActiveXForm


3-1260262902
mz
2009-12-08 12:01
2011.06.05
sql-запрос


1-1256216742
GreyWolf
2009-10-22 17:05
2011.06.05
ListView неправильно позицинирует первую строку


15-1297845189
Tirael
2011-02-16 11:33
2011.06.05
виртуальная NTFS


1-1256548761
GreyWolf
2009-10-26 12:19
2011.06.05
False virus detection





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский