我想查询数据库中某一段时间范围内的数据
 
用了Sqlstr:= Format(' (First_Time >=''%s'') and (First_Time<=''%s'')',[DatetoStr(DateTimePicker1.Date) ,DatetoStr(DateTimePicker2.Date)])返回的有些纪录被漏掉了,为什么?  字符串比较是不是会漏掉东西!因该怎么做才不至于漏掉????谢谢!我的数据库中的时间数据存成了 yyyy-MM-dd ,是VarChar型

解决方案 »

  1.   

    'select * from table where datefield between ''2003-3-3'' and ''2004-3-3'''
      

  2.   

    yyyy-MM-dd ,是VarChar型,是用2003-03-03还是用2003-3-3阿?
      

  3.   

    karach(卡车): 是2003-03-03!
      

  4.   

    你用的是什么数据库,如果用的是SQL SERVER 的话,你可以把日期型转为字符型,在用LIKE进行模糊查询,数据库中的时间数据存成了 yyyy-MM-dd 
    如果用的是ACCESS数据库,你可以用DELLPHI的功能对数据库进行查询
    我下面的时间格式是yyyy-MM-dd 是ACCESS数据库
    sqlstr:='select * from  操作表  where  '+
        '厂号='+inttostr(combobox1.ItemIndex)+' and ' +
        '类型 ='+inttostr(combobox4.ItemIndex)+' and  ' +
         ' 保存时间 like '''+trim(combobox2.Text+'-'+combobox3.Text)+'%'' order by 操作编号';
    我想能够解决你的问题。
      

  5.   

    SQLSERVER在保存日期型数据的时候,你可能把时间也写进去了,比如,2003-03-09 16:20:19:000,而你查询的时候,比如日期控件(datetimepicker2)的日期为2003-03-09,那么你用datetostr()的时候,SQLSERVER会自动按2003-03-09 00:00:00:000去找数据,那么
    那条记录就由于2003-03-09 00:00:00:000<2003-03-09 16:20:19:000而无法显示了
      

  6.   

    Sqlstr:= Format(' (First_Time >=''%s'') and (First_Time<=''%s'')',[DatetoStr(DateTimePicker1.Date) ,DatetoStr(DateTimePicker2.Date)])
    //DatetoStr(DateTimePicker2.Date)不要用这个函数,用FORMATERDATETIME
      

  7.   

    小类论坛在哪里?
    请问我怎么在delphi下不能提问?