我想在Query1.sql.add('select * from table where time='+''''+datetimepicker1.date+'''');
这样写对不对?显然不对,应该怎么写呢?谁会?

解决方案 »

  1.   

    var
    s:string;
    begin
    s:=DateTimeToStr(datetimepicker1.date);
    Query1.sql.add('select * from table where time=s');
      

  2.   

    你数据库中的time字段是什么呀,如果是日前型,你和字符串比较是要出错的
    如果是SQL Server要写成这样,给你个例子吧select * from table where convert(char(10),time,102)='2003.06.17'
    convert的具体用法你查一些Sql Server的帮助。
    如果是Oracle要写成select * from table where to_char(time)='2003.06.17'
    to_char的用法去查Oracle的帮助
      

  3.   

    我要疯了。
    我的问题是这样的:我用了一个datetimepicker控件来选择日期,想用datetimepicker1.date的日期值来检索数据库中TIME字段对应的记录,TIME字段为日期型,格式为:yyyy-mm-dd hh:mm:ss
    据我观察,datetimepicker.date的格式也为:yyyy-mm-dd,SQL的查询语句我会,但我不知道怎样把这句插进query1.sql.add()里,我看书上的一大堆单引号,怎么也看不明白,到底是按照什么规则来写的?请各位看明白我问题的高手费费神,帮忙考虑个5分钟!thanks!
      

  4.   

    Query1.sql.add('select * from table where time='+datetostr(datetimepicker1.date));
    应该可以吧 
      

  5.   

    很难处理了,除非你把datetimepicker1的time设置成和你的数据库里的time字段值的time部分一样,要不然就要用俩个datetimepicker控件了
      

  6.   

    ADOQuery2.Active := False;
       ADOQuery2.SQL.Clear;
       ADOQuery2.SQL.Add('select * from TA where riqi = '+''''+DateTimetoStr(datetimepicker1.datetime)+'''');
       showmessage(ADOQuery2.SQL.Text);
       ADOQuery2.Active := True;
    D7+SQL SERVER 2000+WIN2000 P通过
    前提是:把datetimepicker1的time设置成和你的数据库里的time字段值的time部分一样
      

  7.   

    agree with : dh9450(谁有我菜)
      

  8.   

    同意 nyf1220(sxufe.edu.cn) 和 dh9450(谁有我菜) 的方法。
      

  9.   

    Query1.sql.add('select * from table where time=:time');
    Query1.Params.ParamByName('time').AsDateTime:=datetimepicker1.date;
    Query1.Open;
      

  10.   

    ********************************************
    谢谢大家!
    我的问题解决了,用的方法是:
    query1.sql.add('where time between '+''''+datetostr(datetimepicker1.date)+''''+'and'+''''+datetostr(datetimepicker2.date+1)+'''');
    这样我可以用两个datetimepicker控件选择一个日期区间,然后查询对应的记录,大家可以借鉴吧?
    其实用的就是天地良心的方法,我顺便问一下,用引用控件的属性值,就必须用四个'和两头的加号吗?
      

  11.   

    4个'''' 在SQL语句里面就是一个‘
      

  12.   

    SSQL:=SSQL+' And recpdate>=cast('''+wwDBDateTimePicker1.Text+''' as datetime) And recpdate<=cast('''+wwDBDateTimePicker2.Text+''' as datetime)';