![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос с датой
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]Думаешь это возможно?