我定义了一个Date型的字段IDate,现在通过两个编辑框Edit1,Edit2,得到两个时间,查询这两个时间范围内的值,请教各位高手用SQL语句怎样实现?我用Between,但是说类型不匹配

解决方案 »

  1.   

    1.Access数据库
    vSql := 'SELECT * FROM table WHERE Date BETWEEN #' + Trim(Edit1.Text) + '# AND #' + Trim(Edit2.Text) + '#';//Edit1.Text := '2003-05-30';2.SQL Server 数据库
    vSql := 'SELECT * FROM table WHERE [Date] BETWEEN ' + QuotedStr(Trim(Edit1.Text)) + ' AND ' + QuotedStr(Trim(Edit2.Text));
      

  2.   

    SQL.ADD('SELECT  * FROM TABLE WHER DATEFIELD BETWEN ''' + EDIT1.TEXT + ''' AND ''' + EDIT2.TEXT + '''');
      

  3.   

    SQL.ADD('SELECT  * FROM TABLE WHER DATEFIELD BETWEEN ''' + EDIT1.TEXT + ''' AND ''' + EDIT2.TEXT + '''');
      

  4.   

    SQL.ADD('select * from Table where IDdate between '+''''+Edit1.Text+''''+'and '+''''+Edit2.Text+'''');
      

  5.   

    谢谢各位,我用的是Paradox,我试了上面的每一个都不行,就连用这个都不行
    Select * From ChuKuT Where IDate BETWEEN '2003-05-27' and '2003-05-30';
    错误提示就是:Type mismatch in expression,实在是找不到原因呀?
      

  6.   

    你不要用between
    用<>来限定时间
      

  7.   

    用ADOcommand和ADOdataset控件
    with adocommand do
     begin
     adocommand.type:=cmdtext;
    adocommand.text:='select * from table where IDATE>edit1.text and IDATE<edit2.text'
    adodataset.recordset:=execute;
    end;
    adodataset.open;
    差不多是这样的
      

  8.   

    SQL.ADD('SELECT  * FROM TABLE WHERe IDATE>edit1.text and IDATE<edit2.text')
      

  9.   

    strtodate(edit1.text)
    先转化成时间型啊
    我用BETWEEN比较2个时间型的可以的啊