Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / запрос промежуток времени / 9 сообщений из 9, страница 1 из 1
27.04.2014, 14:53:10
    #38627008
Shnaizer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
procedure TForm26.Button3Click(Sender: TObject);
begin
DataModule2.IBQuery13.Close;
data:=datetostr(MonthCalendar1.date);
DataModule2.IBQuery13.SQL.Clear;
if CheckBox1.Checked=true then
 begin
   DataModule2.IBQuery13.SQL.Add('SELECT * FROM STATISTIKA');
   DataModule2.IBQuery13.SQL.Add('WHERE тут незнаю что ');
   DataModule2.IBQuery13.Params[0].Value:='';
   datamodule2.IBQuery13.Params[0].Value:=data;
   datamodule2.IBQuery13.Params[1].Value:='';
   datamodule2.IBQuery13.Params[1].AsDateTime:=DateTimePicker1.Time;
   datamodule2.IBQuery13.Params[2].Value:='';
   DataModule2.IBQuery13.Params[2].AsDateTime:=DateTimePicker2.Time;
   datamodule2.IBQuery13.open;
 end
 else
 begin
   DataModule2.IBQuery13.SQL.Add('SELECT * FROM STATISTIKA WHERE DATA = :data');
   DataModule2.IBQuery13.Params[0].Value:='';
   datamodule2.IBQuery13.Params[0].Value:=data;
   datamodule2.IBQuery13.open;
 end;



приветствую. Вообщем у меня есть календарик на форме и два маскэдита, в которых выбирается любое время. Рядом с маскэдитами галочка которая их активирует или деактивирует. Т.е. если пользователю надо будет использовать конкретный промежуток времени в добавок к дате, выбранной в календаре, чтобы он смог сделать выборку ещё и по промежутку времени. Так вот, подскажите запрос который выберет по 3 условиям, т.е. по дате указанной в календаре, и по промежутку времени между DateTimePicker1.Time и DateTimePicker2.Time. Спасибо.
...
Рейтинг: 0 / 0
27.04.2014, 15:05:07
    #38627012
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
ShnaizerТак вот, подскажите запрос который выберет по 3 условиям, т.е. по дате указанной в календаре, и по промежутку времени между
а в чем затык? если дата календаря входит в промежуток, то по ней нет смысла искать, все равно она попадет в результат. Если не входит, то тогда field1 = date1 or (field2 > date2 and field2 <date3). или field1 = date1 or (field2 between date2 and date3).
...
Рейтинг: 0 / 0
27.04.2014, 15:10:10
    #38627017
Shnaizer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
kdv,

как это нет смысла искать. у меня в одном случае выбираются заказы одной даты указанной в календаре, а в другом(если галочка стоит) промежуток времени в конкретный день. если этот день не указать в календаре то он выдаст мне этот промежуток из всех дней что уж точно никому ненадо)
...
Рейтинг: 0 / 0
27.04.2014, 15:14:50
    #38627018
Shnaizer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
а затык в том что я не шарю как несколько условия оформлять с параметрами
...
Рейтинг: 0 / 0
27.04.2014, 15:55:10
    #38627028
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
Shnaizer я не шарю как несколько условия оформлять с параметрами
точно так же, как и одно условие, которое есть в приведенном коде. Да и я написал, что указать в where, разве что так правильнее
field1 = :date1 or (field2 > :date2 and field2 <:date3)

и не надо к параметрам обращаться по номерам. Нужно по имени (ParamByName). И также не надо параметрам вначале присваивать пустые строки.
http://www.ibase.ru/devinfo/ibx.htm#ibquery
см. "параметризированные запросы". кстати, я и помыслить не мог, что у кого-то будут сложности с написанием and и or в where.
http://www.w3schools.com/sql/sql_and_or.asp
никакой разницы между значениями и параметрами тут нет.

Shnaizerа в другом(если галочка стоит) промежуток времени в конкретный день.
то были даты, теперь промежуток времени. Мне все равно, какие там у вас проблемы, это ваша задача, не моя. Поэтому и не моя цель выколупывать из вас подробности для решения вашей же проблемы.
...
Рейтинг: 0 / 0
27.04.2014, 16:02:35
    #38627032
Shnaizer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
помоему я сообщил достаточно подробностей) а насчет вашего примера вы не поняли опять что мне нужно. во втором запросе нужнО знать И дату И промежуток времени (не или), блин.
...
Рейтинг: 0 / 0
27.04.2014, 17:07:50
    #38627065
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
Shnaizerво втором запросе нужнО знать И дату И промежуток времени (не или), блин.

"И" переводится на английский как "AND".
В чём твоя проблема-то?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.04.2014, 18:38:49
    #38627084
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
Shnaizer,

дата и время по конкретной дате? Выбираете дату, выбираете время, склеиваете, получаете timestamp от, и timestamp до. between или and.
Я никак не могу понять, в чем у вас проблема. Возможно, она настолько проста, что и в голову не приходит, что это может быть проблемой.
Если вы можете сформулировать запрос на русском языке, то перевести его на английский (where ... and ... or...) проблем не составит.
...
Рейтинг: 0 / 0
28.04.2014, 10:08:12
    #38627421
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос промежуток времени
Shnaizer у меня в одном случае выбираются заказы одной даты указанной в календаре, а в другом(если галочка стоит) промежуток времени в конкретный день. Это одно и то же.
Одна дата в календаре, это промежуток времени в конкретный день, с началом 00:00:00 и концом в 23:59:59
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / запрос промежуток времени / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]