在oracle9中一个表的字段是Date类型里面存的数据如:2005-11-8 12:10:10 我在Delphi7中怎么样写一条SQL语句能查到2005-11-8的所有数据?
应该要用like吧,但后面的那个%不知道怎么加,谢谢.

解决方案 »

  1.   

    select * from table_a where to_char(insert_time,'yyyymmdd')='20051108'
      

  2.   

    楼上的写法如果遇到大数据量的话,会让楼主的数据库歇B的。
    select * from table where col1>=to_date('2005-11-08 00:00:00','YYYY-MM-DD HH24:MI:SS') and col1<=to_date('2005-11-08 23:59:59','YYYY-MM-DD HH24:MI:SS')
      

  3.   

    lcf79001(Delphi白痴) 说的那个方法不行,他老是出错说无效列名,怎么回事下面两种方法都不行.
      ADOQuery1.Close;ADOQuery1.sql.clear;
      ADOQuery1.sql.add('select * from jjxx where to_char(jjsj,"yyyy-mm-dd")=:day');
      ADOQuery1.Params.ParamByName('day').AsDate:=DateTimePicker1.Date;
      ADOQuery1.Open;  ADOQuery1.Close;ADOQuery1.sql.clear;
      ADOQuery1.sql.add('select * from jjxx where to_char(jjsj,"yyyy-mm-dd")=:day');
      ADOQuery1.Params.ParamByName('day').AsString:=DateToStr(DateTimePicker1.Date);
      ADOQuery1.Open;
      

  4.   

    ADOQuery1.Close;
      ADOQuery1.sql.clear;
      ADOQuery1.sql.add('select * from jjxx where to_char(jjsj,''yyyy-mm-dd'')=' + QuotedStr(DateToStr('yyyy-mm-dd',DateTimePicker1.Date)));
      ADOQuery1.Open;
      

  5.   

    是你在Delphi中调用不正确,一楼二楼提供的SQL语句并没有问题。
      

  6.   

    我按照楼上试了一下怎么出现了错误:
    There is no overloaded version of 'DateToStr' that can be called with these arguments
      

  7.   

    sorry,搞错一个函数,应该用FormatDateTimeADOQuery1.Close;
      ADOQuery1.sql.clear;
      ADOQuery1.sql.add('select * from jjxx where to_char(jjsj,''yyyy-mm-dd'')=' + QuotedStr(FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date)));
      ADOQuery1.Open;