Здравствуйте, TimScorp, Вы писали:
TS>Вопрос в следующем:
Надо указывать дату в американском формате, как то:
S := Format('UPDATE Клиенты SET Дата = %s WHERE (Дата BETWEEN %s AND %s);',
[FormatDateTime('#m-d-yyyy#', DateEdit5.Date),
FormatDateTime('#m-d-yyyy#', DateEdit3.Date),
FormatDateTime('#m-d-yyyy#', DateEdit4.Date)]);
Здравствуйте, TimScorp, Вы писали:
TS>Имеем таблицу в Access в ней есть Поле: Date тип — Дата/время TS>А как написать чтобы проверить находится ли дата в введенном промежутке???
1) Date — это функция в акцесе, поэтому поле Date заключаем в квадратные скобки (а лучше — переименовываем)
2) Пользуемся параметрами
DM.APQ.SQL.Add('WHERE [Date] BETWEEN :DateFrom AND :DateTo');
DM.APQ.ParamByName( 'DateFrom' ).asDateTime := StrToDate( MaskEdit1.Text );
DM.APQ.ParamByName( 'DateTo').asDateTime := StrToDate( MaskEdit2.Text );
3) Зачем MaskEdit? Есть же куча контролов для ввода даты, TDateTimePicker например
Здравствуйте, TimScorp, Вы писали:
H>>DM.APQ.SQL.Add('WHERE [Date] BETWEEN :DateFrom AND :DateTo'); H>>DM.APQ.ParamByName( 'DateFrom' ).asDateTime := StrToDate( MaskEdit1.Text ); H>>DM.APQ.ParamByName( 'DateTo').asDateTime := StrToDate( MaskEdit2.Text ); TS>Так ваще не получается! Токо так могу написать: DM.APQ.Parameters.ParamByName('DateFrom') и добавить asDateTime не можу. TS>В чем проблем???
Здравствуйте, TimScorp, Вы писали:
TS>Здравствуйте, Hеmul, Вы писали:
H>>DM.APQ.SQL.Add('WHERE [Date] BETWEEN :DateFrom AND :DateTo'); H>>DM.APQ.ParamByName( 'DateFrom' ).asDateTime := StrToDate( MaskEdit1.Text ); H>>DM.APQ.ParamByName( 'DateTo').asDateTime := StrToDate( MaskEdit2.Text );
TS>Так ваще не получается! Токо так могу написать: DM.APQ.Parameters.ParamByName('DateFrom') и добавить asDateTime не можу.
Здравствуйте, TimScorp, Вы писали:
TS>Доброго времени суток!!!
TS>Вопрос в следующем:
TS>Имеем таблицу в Access в ней есть Поле: Date тип — Дата/время TS>Хранятся в этом поле даты.
TS>пишу запрос типа:
TS>DM.APQ.SQL.Add('WHERE Date BETWEEN '+ QuotedStr (MaskEdit1.Text) + ' AND ' + QuotedStr(MaskEdit2.Text));
TS>Выдает ошибку: Несоответствие типов данных в выражении условия отбора.
DM.APQ.SQL.Add('WHERE Date BETWEEN #'+ QuotedStr (MaskEdit1.Text) + '# AND #' + QuotedStr(MaskEdit2.Text)) + '#';
Доброго дня, TimScorp, Вы спросили: TS>пишу запрос типа: TS>DM.APQ.SQL.Add('WHERE Date BETWEEN '+ QuotedStr (MaskEdit1.Text) + ' AND ' + QuotedStr(MaskEdit2.Text)); TS>Выдает ошибку: Несоответствие типов данных в выражении условия отбора.
Отвечаю, как я пишу:
... WHERE (S.ID=T.SOTR) And ((T.DATE_WORK>=:DAYNACH) And (T.DATE_WORK<=:DAYKON))
DAYNACH — Начало периода
DAYKON — Конец периода
...
tReportData: TADODataSet;
...
with tReportData.Parameters do
begin
Clear;
AddParameter.Name := 'DAYNACH';
AddParameter.Name := 'DAYKON';
ParamValues['DAYNACH'] := eFirstDay.Value;
ParamValues['DAYKON'] := eEndDay.Value;
end;
Есть пример для TADOQuery. Если нужно — подскажу.
Удачи!