数据库是AccessVar StrDate1,StrDate2:String; begin StrDate1:='2001-08-01'; StrDate2:='2001-08-31'; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(' Select * From TableName1 Where Date Between DateValue('+#39+StrDate1+#39+') and DateValue('+#39+StrDate2+#39+')'); Query1.Open; end;数据库是SQL ServerVar StrDate1,StrDate2:String; begin StrDate1:='2001-08-01'; StrDate2:='2001-08-31'; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(' Select * From TableName1 Where Date Between '+#39+StrDate1+#39+' and '+#39+StrDate2+#39); Query1.Open; end;
select * from aDataBase where aDate>Cast(‘01/30/01’ as Date) and aDate<Cast(‘02/30/01’ as Date) 上面打错了.
试试这样: 组件:query1,datetimepicker1,datetimepicker2; begin with query1 do close; sql.clear; sql.add('select*from tablemane1 where 日期 between :s1 and s2'); ParamByName('s1').asdatetime:=datetimepicker1.date; ParamByName('s2').asdatetime:=datetimepicker2.date; open; end; end;
假如用的SQL的话,用between and 就行。用Access好象用 sCondition:= sCondition+' and schemedate>=#'+datetostr(datefrom.date)+'#'+ ' and schemedate<=#'+datetostr(dateto.date)+'#';
可是查不出来啊,什么都不显示,数据库里的time字段使用的是datetime类型,是不是有关系?我是这么写的: procedure TFormpog.DateTimePicker2Change(Sender: TObject); begin datamodule2.Querypog.Close; datamodule2.Querypog.SQL.Clear; DATAMODULE2.Querypog.SQL.Add('SELECT Psys_log."TIME", OPNO, SYS_NA, MOD_NA, ACTION, OP_DETALL '); DATAMODULE2.Querypog.SQL.Add('FROM PSYS_LOG Psys_log '); DATAMODULE2.Querypog.SQL.Add('WHERE "TIME" between:TIMER and :TIMERS '); datamodule2.Querypog.ParamByName('TIMER').AsDateTime:=datetimepicker1.Date; datamodule2.Querypog.ParamByName('TIMERS').AsDateTime:=datetimepicker2.Date; if datamodule2.Querypog.Prepared=false then datamodule2.Querypog.Prepare; datamodule2.Querypog.Open; end;
StrDate1,StrDate2:String;
begin
StrDate1:='2001-08-01';
StrDate2:='2001-08-31';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(' Select * From TableName1 Where Date Between DateValue('+#39+StrDate1+#39+') and DateValue('+#39+StrDate2+#39+')');
Query1.Open;
end;数据库是SQL ServerVar
StrDate1,StrDate2:String;
begin
StrDate1:='2001-08-01';
StrDate2:='2001-08-31';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(' Select * From TableName1 Where Date Between '+#39+StrDate1+#39+' and '+#39+StrDate2+#39);
Query1.Open;
end;
上面打错了.
组件:query1,datetimepicker1,datetimepicker2;
begin
with query1 do
close;
sql.clear;
sql.add('select*from tablemane1 where 日期 between :s1 and s2');
ParamByName('s1').asdatetime:=datetimepicker1.date;
ParamByName('s2').asdatetime:=datetimepicker2.date;
open;
end;
end;
sCondition:= sCondition+' and schemedate>=#'+datetostr(datefrom.date)+'#'+
' and schemedate<=#'+datetostr(dateto.date)+'#';
procedure TFormpog.DateTimePicker2Change(Sender: TObject);
begin
datamodule2.Querypog.Close;
datamodule2.Querypog.SQL.Clear;
DATAMODULE2.Querypog.SQL.Add('SELECT Psys_log."TIME", OPNO, SYS_NA, MOD_NA, ACTION, OP_DETALL ');
DATAMODULE2.Querypog.SQL.Add('FROM PSYS_LOG Psys_log ');
DATAMODULE2.Querypog.SQL.Add('WHERE "TIME" between:TIMER and :TIMERS ');
datamodule2.Querypog.ParamByName('TIMER').AsDateTime:=datetimepicker1.Date;
datamodule2.Querypog.ParamByName('TIMERS').AsDateTime:=datetimepicker2.Date;
if datamodule2.Querypog.Prepared=false then datamodule2.Querypog.Prepare;
datamodule2.Querypog.Open;
end;
datamodule2.Querypog.ParamByName('TIMER').AsDate:=datetimepicker1.Date;
datamodule2.Querypog.ParamByName('TIMERS').AsDate:=datetimepicker2.Date;
祝你成功!!