库内容如下date          time          colume1   colume2    .....
   .
   .
   .            
2003-12-30    12:12:12      111       222        .....
2004-12-31    01:12:01      112       223        .....
   .
   .
   . edit1.text:='2000-01-01'; edit2.text:='00:00:00';
edit3.text:='2004-12-10'; edit4.text:='23:59:59';
求一语句。下面的语句where后面是错的。^-^。但是要达到这个意思。
select * 
from mydatebase 
where 
( (date+time) >= (edit1.text+edit2.text) and  (date+time) <= (edit3.text+edit4.text))在线等....谢谢大侠。

解决方案 »

  1.   

    解决方法有二:
    1、使用参数
    2、使用select * 
    from mydatebase 
    where 
    ( (date+time) >= { fn strtodate(edit1.text+' '+edit2.text)} and  (date+time) <= { fn strtodate(edit3.text+' '+edit4.text))}
      

  2.   

    一起学习,是不是
    select * 
    from mydatebase 
    where ( (date+time) >= 
    (DateTimeToStr('''+edit1.text+''')+DateTimeToStr('''+edit2.text+''')) and 
    (date+time) <= (DateTimeToStr('''+edit3.text+''')+DateTimeToStr('''+edit4.text+'''))
      

  3.   

    sql.add('select * from mydatebase');
    sql.add('where ');
    sql.add('((date>:date1) or (date=:date1 and time>=:time1))  and');
    sql.add('((date<:date2) or (date=:date2 and time<=:time2))');
    parameters[0].value:=strtodate(edit1.text);
    parameters[1].value:=strtodate(edit1.text);
    parameters[2].value:=strtotime(edit2.text);
    parameters[3].value:=strtodate(edit3.text);
    parameters[4].value:=strtodate(edit3.text);
    parameters[5].value:=strtotime(edit4.text);
    open;
      

  4.   

    忘记说了,那数据库表里的date和time都是字符串。
      

  5.   

    (date+time) >= (edit1.text+edit2.text) 
    这个表达式不知道正不正确。 date 和 time内容都是字符串的。
      

  6.   

    没来晚吧?
    sqlstr:='insert into table1 values ('''+Edit1.Text+''')';
    adoquery.sql.clear;
    adoquery.sql.add(sqlstr);
    adoquery.open
      

  7.   

    sqlstr := sqlstr + ' (date+time >= ' + Chr(39) + Edit1.Text + ' ' + Edit2.Text
                + Chr(39) + ') and (date+time <=' + s + Edit3.Text + ' ' + Edit4.Text 
                + chr(39) + ')';
    应该可以用,你试试。
      

  8.   

    弄出来了。
    select * 
    from mydatebase 
    where 
    ( (date+time) >= (edit1.text+edit2.text) and  (date+time) <= (edit3.text+edit4.text))
    这个语句是正确的。问题出在其他地方。^-^。
    但还是多谢各位。散分。