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

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

Запрос с датой


dan8 ©   (2006-10-03 00:35:00) 

Привет!! Подскажите как выглядит запрос если выбыроку надо произвести данных с такое-то число по такое-то?
Спасибо


Virgo_Style   (2006-10-03 19:38:00) [1]

Juju   (03.10.06 19:14) [9]
все равно [8], первая часть


Juju   (2006-10-03 19:14:00) [2]

Я тоже сталкивался с этой проблемой в Access. Поэтому передавал значение даты в запрос именно в том формате в котором его передает себе сам Access.

//Сама функция для преобразования наших 03.10.2006 в #10/03/2006# - //именно так передает значение даты Access.
function FormatDateToAccess(D:TDate):String;
var S:String;
begin
   S := FormatDateTime('#mm.dd.yyyy#',D);
   S := StringReplace(S,'.','/',[rfReplaceAll]);
end;


//Допустим что значения начальной и конечной даты содержаться в //переменных BeginDateи EndDateсоответственно

//А запрос выглядит так
S := 'SELECT * FROM TABLE WHERE FIELDDATE >='+FormatDateToAccess(BeginDate)+' AND FIELDDATE <='+FormatDateToAccess(EndDate);


Desdechado   (2006-10-03 17:51:00) [3]

> SQL.Add('where (Datetime > "'+Nachalo+'") and (Datetime < "'+konec+'")');
Ересь. Параметры рулят.

> SQL.Add('group by datetime');
Группировка-то тут зачем?


Кщд   (2006-10-03 09:12:00) [4]

alucard ©   (03.10.06 09:00) [6]
between - это не то, что у вас


alucard   (2006-10-03 09:00:00) [5]

Select *
From База_Данных, другая_база_данных_содержащая_поля_nachalo_и_konec
where (Datetime > :nachalo) and (Datetime < :konec)
group by datetime

это если ты дату начала и конца берёшь из другой таблицы.

Если нет то через Query
var nachalo, konec: string;
with query do
begin
if active then close;
SQL.Clear;
SQL.Add('Select *');
SQL.Add('From База_Данных');
SQL.Add('where (Datetime > "'+Nachalo+'") and (Datetime < "'+konec+'")');
SQL.Add('group by datetime');
Open;
end;


Германн   (2006-10-03 01:31:00) [6]


> dan8   (03.10.06 01:21) [4]
>
> Пользуюсь Access поля в базе с типом DateTime;
>

Я в отличие от АП - ламер в вопросах по SQL. Но в парадоксе я писАл нечто типа:
with Query1 do begin
...
SQL.Add(' AND ( E.EvDateTime <=   :ToDateTime)'+
           ' AND ( E.EvDateTime >=  :FromDateTime)');
   ParamByName('FromDateTime').AsDateTime:=FReport.BegDT-1/(24*60*60);
   ParamByName('ToDateTime').AsDateTime:=FReport.EndDT+1/(24*60*60);


dan8   (2006-10-03 01:21:00) [7]

Пользуюсь Access поля в базе с типом DateTime;


Германн   (2006-10-03 01:13:00) [8]


> dan8   (03.10.06 01:00) [2]
>
> Думаю да!!
>

Тогда:
 1. Какой движок баз данных пользуешь?
 2. Какое поле у тебя в базе содержит дату и какой тип этого поля?
 3. выбырокувсё равно не сделаешь :-(


dan8   (2006-10-03 01:00:00) [9]

Думаю да!!


Anatoly Podgoretsky   (2006-10-03 00:58:00) [10]

Думаешь это возможно?


Наверх

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