我time字段里的数据都为2004-06-10 17:18:58.000 我想通过2004-06-10查询到它该怎么实现呀

解决方案 »

  1.   

    Oracle SQL:
    select * from table1 
    where Trunc(yourTime)=To_Date('2004-06-10','yyyy-mm-dd')
      

  2.   

    select convert(varchar(10),getdate(),120) as 日期
      

  3.   

    你是不是使用ACCESS的?
    因为这种情况我以前也遇到过,解决方法是使用like '2004-06-10'+'%'
    或是另一种解决的方法是另到time 字段不出现 17:18:58.000
    在设计时使用 fieldbyname('time').asdatetime:=date;这种方法编写
    date为tdate类型就会出现这种情况,
    要是改成fieldbyname('time').asstring:=datetostr(date);就可以克服出现时间的多余部份
    对于以后各种查询都会方便很多。
    还有在ACCESS中日期的查询要加上##,例如 select * from tablename where time=#2004-6-10#
      

  4.   

    Query1.SQL.Text := 'select * from table1 where field1 >= :datetime1 and field1 < :datetime2';
    Query1.ParamByName('datetime1').AsDateTime := StrToDateTime('2004-06-10');
    Query1.ParamByName('datetime2').AsDateTime := StrToDateTime('2004-06-10') + 1;
    Query1.Open;
      

  5.   

    var str:string;
    str:=datetimetostr(2004-06-10 17:18:58.000);
    查询语句 'select * from tablename where 字段名 like str[1]+str[2]+str[3]+str[4]+str[5]+……str[10]+''%';
    大致是这样,原理就是取出前几个字符做为查询条件
      

  6.   

    在不明确你的数据库的情况下,还有一种办法。
    查询条件:'2004-06-10'可以转换成日期,整形数据;
    数据库表中的时间字段也可以取出,转换成Real来行,然后取整,进行相等判断。
      

  7.   

    你的TIME字段搞那么多干吗,FORMAT一下不可以了