你可以这样写
select * from A.DBF where 出库日期>Datetimepicker1.datetime
就可以了
select * from A.DBF where 出库日期>Datetimepicker1.datetime
就可以了
解决方案 »
- delphi开发环境下,报错,应该怎么跳出程序?
- delphi 首次运行问题
- DBGrid1双击后能不能把该行改颜色,第三方控件也行。
- 送分讨论请教水晶报表(Crystal report9组件在Delphi7中的应用
- Delphi中怎么没有新建类这一项啊
- 关于TSCrollBox问题
- 拨号传输
- 大家都来讨问一下DELPHI最好用哪种连接方式!BDE.ADO,ODBC.......
- “100套餐类”,怎样取出以上字符串中的数字?
- 抗议抗议抗议,代码帖上去为啥格式都没得了!!!!!
- 我想问一下,关于点击图象按比例缩放??
- 各位,delphi6自带的Express - Borland Limited Edition为何不支持中文阿
'''+formatdatetime('yyyy-mm-dd',Datetimepicker1.date)+''' and '''
+formatdatetime('yyyy-mm-dd',Datetimepicker2.date)
)
Datetimepicker1.date 开始时间
Datetimepicker2.date 结束时间 查询的是在两日期范围内的出有记录
sql.text('select * from a.dbf where convert(char(10),出库日期,120) bwteen
'''+formatdatetime('yyyy-mm-dd',Datetimepicker1.date)+''' and '''
+formatdatetime('yyyy-mm-dd',Datetimepicker2.date)+'''')
sql.add('select * from a.dbf where convert(char(10),出库日期,120) bwteen d1: and d2:);
query1.parambyname('d1'):=Datetimepicker1.date;
query1.parambyname('d2'):=Datetimepicker2.date;
sql.add('select * from a.dbf where convert(char(10),出库日期,120) bwteen d1: and d2:);
query1.parambyname('d1'):=Datetimepicker1.date;
query1.parambyname('d2'):=Datetimepicker2.date;
datetimepicker2 结束时间
ls_sql:string;ls_sql:='';
ls_sql:='select * from A where A,time>=to_date('+chr(39)+datetimepicker1+chr(39)+',''yyyy-mm-dd'') ';
ls_sql:=ls_sql+' and A.time<=to_date('+chr(39)+datetimepicker2+chr(39)+',''yyyy-mm-dd'')';
with query1 do
begin
close;
Sql.clear;
Sql.add(ls_sql);
prepare;
open;
end;
是不是在query控件中的属性还要进行其他设置啊??????
应该是 :d1 and :d2,冒号在前
begin
Close;
SQL.Clear;
SQL.Add('Select * From a.dbf ');
SQL.Add('Where 出库日期 Between :StartDate and :EndDate');
ParamByName('StartDate').asDateTime:=DateTimePicker1.DateTime;
ParamByName('EndDate').asDateTime:=DateTimePicker2.DateTime;
Open;
end;
先写一个函数:
function CreateGlobalTSQLString(ADateTime: TDateTime): string;
var
strDestDateTime: string;
begin
strDestDateTime := FormatDateTime('yyyy-mm-dd hh:mm:ss.zzz', ADateTime);
Result := 'CONVERT(DATETIME,''' + strDestDateTime + ''',20)';
end;然后在生成sql语句时这样写:
ADODataSet1.CommandText := 'SELECT * FROM 订单 WHERE 订购日期 BETWEEN '+
CreateGlobalTSQLString(DateTimePicker1.Date) + ' AND ' +
CreateGlobalTSQLString(DateTimePicker2.Date) + ' ORDER BY 订购日期';这样就不用考虑DateTimePicker的日期格式和库中日期字段的格式的不同了。实际上这样处理就是告诉sql server我给你传进去的日期是什么格式的,剩下的事就是sql server的事了。我只在sql server 2000上测试通过。有兴趣的朋友可以试试其它的数据库。
begin
Close;
SQL.Clear;
SQL.Add('Select * From A');
SQL.Add('Where 出库日期 between :StartDate and :EndDate');
ParamByName('StartDate').asDateTime:=Datetimepicker1.dateTime;
ParamByName('EndDate').asDateTime:=Datetimepicker2.dateTime;
Open;
end;