我想根据日期来进行查询,要求查询两个日期中间的所有记录。有两种方法:方法一:在filter属性中进行筛选
我设置为: shijian > 03-2-1 //可以得到正确的结果
但如果是: shijian between 03-2-1 and 03-5-1 //则错误 又用: shijian like 03-2-1 //也可以得到正确的结果
再用: shijian like 03 或者 shijian like 03-2 //则错误 方法二:更改Query组件的SQL语句
dm.ADOQueryTJ.Close;
dm.ADOQueryTJ.Clear;
dm.ADOQueryTJ.SQL.Add(sql);
dm.ADOQueryTJ.ExceSQL;
dm.ADOQueryTJ.Open; 变量SQL为(以下是别人给我及我搜索到的答案):
1、sql:='select * from xiaoshoujilu where like '''%03-3%'''';
2、sql:='select * from xiaoshoujilu where shijian between '+''''+'03-2-1'+''''+
' and '+''''+'03-4-30'+'''';
3、sql:='select * from xiaoshoujilu where shijian between ''03-2-1'' and ''03-4-30''';
4、sql:='select * from xiaoshoujilu where shijian between '02-2-1' and '03-6-1'"; 5、sql:='select * from xiaoshoujilu where shijian between #02-2-1# and #03-6-1#'; 6、sql:='select * from xiaoshoujilu where like %03-3%';
以上sql语句经过调试后,全部不能得到正确的结果。
我是使用delphi6的ADOQuery组件,数据库是用ACCESS2000建立的,数据库名sss包含xiaoshoujilu表。
期盼着那位大虾能够解决这个问题,或者提供其它方法来完成这种查询。 谢谢大家。
我设置为: shijian > 03-2-1 //可以得到正确的结果
但如果是: shijian between 03-2-1 and 03-5-1 //则错误 又用: shijian like 03-2-1 //也可以得到正确的结果
再用: shijian like 03 或者 shijian like 03-2 //则错误 方法二:更改Query组件的SQL语句
dm.ADOQueryTJ.Close;
dm.ADOQueryTJ.Clear;
dm.ADOQueryTJ.SQL.Add(sql);
dm.ADOQueryTJ.ExceSQL;
dm.ADOQueryTJ.Open; 变量SQL为(以下是别人给我及我搜索到的答案):
1、sql:='select * from xiaoshoujilu where like '''%03-3%'''';
2、sql:='select * from xiaoshoujilu where shijian between '+''''+'03-2-1'+''''+
' and '+''''+'03-4-30'+'''';
3、sql:='select * from xiaoshoujilu where shijian between ''03-2-1'' and ''03-4-30''';
4、sql:='select * from xiaoshoujilu where shijian between '02-2-1' and '03-6-1'"; 5、sql:='select * from xiaoshoujilu where shijian between #02-2-1# and #03-6-1#'; 6、sql:='select * from xiaoshoujilu where like %03-3%';
以上sql语句经过调试后,全部不能得到正确的结果。
我是使用delphi6的ADOQuery组件,数据库是用ACCESS2000建立的,数据库名sss包含xiaoshoujilu表。
期盼着那位大虾能够解决这个问题,或者提供其它方法来完成这种查询。 谢谢大家。
解决方案 »
- delphi32.exe-ROBdbk70.dll故障
- Delphi 6 下的TAB键为何不能缩进代码,在哪里设啊?(大虾)
- 大家总结一下自己最爱的控件?
- 请问这句Select语句要怎么写?
- 怎么控制话筒的音量!!在线等待!!!急急!来者有分
- 如果我想得form1中panel1面板上的控件数,可以这么写吗:form1.panel1.componentcount?
- 请教下数学函数问题我老是试不对
- 请问怎么判断DBGrid中字段为Memo中内容是否为空?
- 如何手动控制dbgrid控件,如设列数,行数,表头,内容等。急!!高手帮忙呀
- 谁能告诉我那有制作安装盘的工具?
- 数据批量显示问题
- 制作病毒专杀工具遇到的问题。高手进!
dm.ADOQueryTJ.Close;
dm.ADOQueryTJ.Clear;
dm.ADOQueryTJ.SQL.Add(sql);
dm.ADOQueryTJ.Parameters.ParamByName('startdate').DataType = ftDate;
dm.ADOQueryTJ.Parameters.ParamByName('startdate').value = EncodeDate(2002, 2, 1);
dm.ADOQueryTJ.Parameters.ParamByName('enddate').DataType = ftDate;
dm.ADOQueryTJ.Parameters.ParamByName('enddate').value = EncodeDate(2003, 5, 1);
dm.ADOQueryTJ.Open;
dm.ADOQueryTJ.Close;
dm.ADOQueryTJ.Clear;
sql := 'select * from xiaoshoujilu where shijian >= :date1 and <= :date2';
dm.ADOQueryTJ.SQL.Add(sql);
dm.ADOQueryTJ.Parameters.Values('date1'):= StrToDate('2003-2-1');
dm.ADOQueryTJ.Parameters.Values('date2'):= StrToDate('2003-5-1');
dm.ADOQueryTJ.ExceSQL;
dm.ADOQueryTJ.Open;
dm.ADOQueryTJ.Close;
dm.ADOQueryTJ.Clear;
sql := 'select * from xiaoshoujilu where shijian >= :date1 and <= :date2';
dm.ADOQueryTJ.SQL.Add(sql);
dm.ADOQueryTJ.Parameters.ParamByName('date1').Values:= StrToDate('2003-2-1');
dm.ADOQueryTJ.Parameters.ParamByName('date2').Values:= StrToDate('2003-5-1');
dm.ADOQueryTJ.ExceSQL;
dm.ADOQueryTJ.Open;