要求实现目的:
   以日期为搜索值,查询一个表中从2003-10-1至2003-10-15的数据。求解ADOQuery.sql.add('')中的语法。
  注意:以上两个日期值必须是从用户界面中的组件EDIT1和EDIT2接收过来的数据。

解决方案 »

  1.   

    SQL.Add('select * from Table where DateField between '''+strtodate(Trim(Edit1.Text))+''' and '''++strtodate(Trim(Edit2.Text))+'''')
      

  2.   

    我试了,但出现如下错误:Imcompatble types 'Tstring' and 'TDateTime';
      

  3.   

    oracle数据库
    "select * from table where to_char(rq,'yyy-mm-dd')>="+quotedstr(edit1.text)+" and to_char(rq,"yyyy-mm-dd")<="+quotedstr(edit2.text);
    要保证edit中的内容为:yyyy-mm-dd,你可以自己处理下
    sqlserver
    用ccase一样的
      

  4.   

    SQL.Add('select * from Table where DateField between quotedStr(Trim(Edit1.Text))
    and quotedStr(Trim(Edit2.Text)));
      

  5.   

    sqlserver:
       sql.add('select * from table where datefield between '''+Trim(Edit1.Text)+''' and '''+Trim(Edit2.Text)+'''')
    Access: 
       sql.add('select * from table where [datefield] between #'+Trim(Edit1.Text)+'# and #'+Trim(Edit2.Text)+'#')
      

  6.   

    建议楼主界面上用tdatetimepicker控件,来让用户选择时间,这样不容易出错,也方便用户。
    而sql语句可以这样写:
    sql.add('select * from tabel1 where date1 between' + #39 + pick1.datetime +#39 + ' and '+ #39 +  pick2.datetime + #39);