数据库里的表里的时期时间字段为yyyy-mm-dd hh:mm:ss,用DateTimePicker作为日期的查询条件。我的语法如下:adoquery1.SQL.Add('select * from tsyslog where  to_char(logtime,'yyyy-mm-dd') = '''+DateTimePicker+'''');
为什么会通不过。

解决方案 »

  1.   

    改為如下試一下
    adoquery1.SQL.Add( 'select * from tsyslog where  to_char(logtime, 'yyyy-mm-dd ') =  ' ' '+DateTimePicker.date+ ' ' ' '); 
      

  2.   

    S:='select * from tsyslog where to_char(logtime,''yyyy-mm-dd'')='+QuotedStr(FormatDateTime('yyyy-mm-dd',DateTimePicker.Date));
    adoquery1.SQL.Add(S); 
      

  3.   

    数据库里的是Datetime型,而DateTimePicker.date是Date型,比较前要转换一下!
      

  4.   

    还要考虑不同数据库类型,其日期的SQL格式是不一样。
    oracle:
      ... tochar(日期,''yyyy-mm-dd'')='+FormatDateTime('yyyy-mm-dd',DateTimePicker.Date);
    sqlserver/sybase:
      ... 日期='''+FormatDateTime('yyyy-mm-dd',DateTimePicker.Date)+'''';
    access:
      ... 日期=#'+FormatDateTime('yyyy-mm-dd',DateTimePicker.Date)+'#';
      

  5.   

     S.SQL.Add('and DownTime_='''+datetimetostr(DateTimePicker1.DateTime)+''''可以修改为这个样子,,
    关键是DateTimePicker1不能获取精确到时分的时间,,,所以,,在查询以前可以付值过去或者以输入的方式都可以,,,例如DateTimePicker1.datetime:=now;在进行查询,,以获取精确的时间,
      

  6.   

    在delphi中日期时间都是按浮点型数据保存的。
    adoquery1.SQL.Add('select * from tsyslog where logtime=:logtime');
    ADOQuery1.Parameters[0].Value :=DateTimePicker1.datetime;
      

  7.   

    adoquery1.SQL.Add( 'select * from tsyslog where  to_char(logtime, 'yyyy-mm-dd ') =  ' ' '+DateToStr(DateTimePicker.DateTime)+ ' ' ' '); 
      

  8.   

    DateTimePicker这是一个控件,DateTimePicker.Date 与DateTimePicker.Time
    需要进行FormatDateTime进行转换成格式化字符。
      

  9.   

    adoquery1.SQL.Add( 'select * from tsyslog where datediff(day,logtime, ' + QuotedStr(FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date)) + ')=0');
      

  10.   

    枫叶,我按你的方法做过了,可以通过编绎,但是报错.错误如下所截图第一个是用SHOWMESSAGE()   SHOW的是ADOQEURY1.SQL.TEXT
    其它两个是运行过程中报的错误
      

  11.   

    枫叶,,,我按你的办法做过了,但过程中总是报错,
    运行过程中,ADOQUERY1.SQL.TEXT为'select * from tsyslog where datediff(day,logtime,'2007-08-09')=0
    然后报ORA-01797:此运算符后面必须跟ANY或者ALL
    这样错的怎么改呀???请指点
    谢谢