我用datetimepicker插入日期,但是老是把时间也插了进去.代码是这样的.
为方便起见,这里字段有了简化.
with adoquery1 do 
begin
  sql.clear;
  sql.add('insert into table1 values(:date)');
  parameters[0].value:=datetimepicker1.date;
  execSQL;
end;
结果显示06-12-12 4:34:23,而我要的是06-12-12
还发现一点,参数的datetype属性不能设置为ftdate,下拉框中有ftdate,但是点击后会自动变为ftdatetime,我在代码中设置:
  parameters[0].datetype:=ftdate;
请高手赐教,不胜感激.

解决方案 »

  1.   

    FormatDateTime('YYYY-MM-DD ', datetimepicker1.DateTime)
      

  2.   

    to Rubi(我们头说,语言无关了!所以我什么都搞) 
    谢谢你的回复.
    我做过测试了,showmessage(datetostr(datetimepicker1.date)),看到的结果并没有时间,所以
    我觉得问题应该出在adoquery的参数设置上.换句话说,当程序运行到parameters[0].value:=datetimepicker1.date;的时候,式子右边已经是06-12-12了,但是由于左边是datetime类型,所以在后面加了时间,现在的问题是参数没办法设置为ftdate类型.
    谁有其他的解决办法吗?很急,谢谢.
      

  3.   

    在FORMAT那里设置  yy:mm:dd hh
      

  4.   

    这样:
    with adoquery1 do 
    begin
      sql.clear;
      sql.add('insert into table1 values(:date)');
      parameters[0].value:=FormatDateTime('YYYY-MM-DD',datetimepicker1.date);
      execSQL;
    end;
      

  5.   

    你如果要的是06-12-12:
    with adoquery1 do 
    begin
      sql.clear;
      sql.add('insert into table1 values(:date)');
      parameters[0].value:=FormatDateTime('YY-MM-DD',datetimepicker1.date);
      execSQL;
    end;
    当然,由于你设置了参数类型,上面的代码有可能会出错,那就这样:
    with adoquery1 do 
    begin
      sql.clear;
      sql.add('insert into table1 values(:date)');
      parameters[0].value:=StrToDate(FormatDateTime('YY-MM-DD',datetimepicker1.date));
      execSQL;
    end;
      

  6.   

    谢谢各位的回复,我后来换了个方法.
    strtodate(datetostr(datetimepicker1.date))
    也可以,呵呵.