我用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;
请高手赐教,不胜感激.
为方便起见,这里字段有了简化.
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;
请高手赐教,不胜感激.
谢谢你的回复.
我做过测试了,showmessage(datetostr(datetimepicker1.date)),看到的结果并没有时间,所以
我觉得问题应该出在adoquery的参数设置上.换句话说,当程序运行到parameters[0].value:=datetimepicker1.date;的时候,式子右边已经是06-12-12了,但是由于左边是datetime类型,所以在后面加了时间,现在的问题是参数没办法设置为ftdate类型.
谁有其他的解决办法吗?很急,谢谢.
with adoquery1 do
begin
sql.clear;
sql.add('insert into table1 values(:date)');
parameters[0].value:=FormatDateTime('YYYY-MM-DD',datetimepicker1.date);
execSQL;
end;
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;
strtodate(datetostr(datetimepicker1.date))
也可以,呵呵.