在sql server中插入时间记录是用Now()函数,即时间字段的记录是有日期和时间。
我用DateTimePicker来查询库中的数据,只需要查日期,
使用如下语句,怎么查询不出。是不是因为字段中还有时间的原因?
该如何把处理字段中的时间?
SQL.Add('select 字号 from Table1 where 时间=:sd');
Parameters.ParamByName('sd').Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);

解决方案 »

  1.   

    Paramters.parambyName('sd').value:=datetimepicker1.date试试。
      

  2.   

    SQL.Add('select 字号 from Table1 where date(时间)=:sd');
    Parameters.ParamByName('sd').Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);date函数在sql语句中;就是将时间字段取日期值;利用这个函数可以搞定;另外建议朋友以后保存时间的时候不要用time();函数;
    要用date();;^_^;
      

  3.   

    SQL.Add('select 字号 from Table1 where datediff(d,时间,:sd)=0');
    Parameters.ParamByName('sd').Value:=DateTimePicker1.Date;或
    SQL.Add('select 字号 from Table1 where convert(char(10),时间,120)=:sd');
    Parameters.ParamByName('sd').Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
    也許都不太好,如果不需要時間﹐保存時就保存Date
      

  4.   

    adoquery1.close;
    adoquery1.clear;
    adoquery1.text:='SELECT * FROM  TABLE WHERE date>='''+DATETO STR(TIME1)+''''+' AND TIME<='+DATETOSTR(TIME2)+'''';
    adoquery1.open;
      

  5.   

    To: 47522341,用你的方法不行,执行说date是不可识别的函数名。怎么解决?
    SQL.Add('select 字号 from Table1 where date(时间)=:sd');
    Parameters.ParamByName('sd').Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
      

  6.   

    自己解决了,在有日期时间的sql server数据库中如果没传时间进去那sql server就会自己赋默认值'yyyy-mm-dd 00:00:00‘包括日期时间,所以我把结束的日期加一天就可以了:
    SQL.Add('select 字号 from Table1 where 时间>=:sd and 时间<=:ed');
    Parameters.ParamByName('sd').Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
    Parameters.ParamByName('ed').Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date+1);这样查询的就是一天之内的时间了,可惜不能给自己加分。
    多谢回答。揭贴!