数据库是oracle,数据表中time 的类型是 date型
查找某一天的数据,程序如下:
with adoquery1 do
begin
close;
sql.clear;
sql.add(select * from table_name where time=:a);
parameters.items[0].value:=datetimepicker1.date;
open;
end;
这样程序会报错:不一致的数据类型。
这样写有错误吗?
有没有更好的写法/
查找某一天的数据,程序如下:
with adoquery1 do
begin
close;
sql.clear;
sql.add(select * from table_name where time=:a);
parameters.items[0].value:=datetimepicker1.date;
open;
end;
这样程序会报错:不一致的数据类型。
这样写有错误吗?
有没有更好的写法/
解决方案 »
- 网络编程求一思路,麻烦不吝赐教。
- 几个操作sqlserver数据库的问题
- 如何读出指针在63位以后的67位数据,如现在是ico文件。我的例子如下。
- 怎样判断一个表的荐在?
- qrExpr问题,急用,在线等!!
- installshield express for delphi的使用说明
- 请教如何对系统正运行中的第3方窗体中的指定对象的属性读取和操作呢?
- onchange 事件触发的是系统的什么消息?
- Delphi中有动态定义业务流程图的控件吗?
- 给我介绍一下DELPHI5内置的函数吧
- 请问:如何将EXCEL文件的某个工作表另存为其他文件,谢谢
- 由于中了蠕虫病毒,不小心将Delphi32.exe文件给删除了(Delphi5.0),各位能否发一个(Delphi32.exe)到[email protected]。Thank you!
begin
close;
sql.clear;
sql.add(select * from table_name where time=:a);
parameters.items[0].value:=DateToStr(datetimepicker1.date);
open;
end;这样就可以了
~~~~~~我没测试过,但怀疑是time引起的问题,因为time是保留字或者函数,你这样写可能引起了二义性。建议回避这样的列名称,或者用[]括起来。
with adoquery1 do
begin
close;
sql.clear;
sql.add(select * from table_name where time=:a);
parameters.items[0].value:=datetimepicker1.datetime;
open;
end;
就是把datetimepicker1.date该为datetimepicker1.datetime;
但是,明明有数据它却查不出来,奇怪。
begin
close;
sql.clear;
sql.add('select * from table_name where time=to_date(''yyyy-mm-dd hh24:mi:ss'','':a'')');
parameters.items[0].value:=DateTimetoStr(datetimepicker1.datetime);
open;
end;
with adoquery1 do
begin
close;
sql.clear;
sql.add(select * from table_name where time=:a);
parameters.ParamByName('a').asstring:=DateToStr(datetimepicker1.date);
open;
end;
如果数据库中的内容确实是Date型的,上面的应该没有问题。
parameters.ParamByName('a').asstring:=DateToStr(datetimepicker1.date);
begin
close;
sql.clear;
sql.add(select * from table_name where [time]=:a);
parameters.items[0].value:=DateToStr(datetimepicker1.date);
open;
end;
注意:time会和系统有冲突要用[]括号来括住然合转换一下就可以了
sqlstr:='select * from table_name where to_char(time,'''yyyymmdd''')=:a';
sql.add(sqlstr);
Params[0].asstring:=formatdatetime('yyyymmdd',datetimepicker1.date);
测试通过
sqlstr:='select * from table_name where to_char(time,''yyyymmdd'')=:a';
sql.add(sqlstr);
Params[0].asstring:=formatdatetime('yyyymmdd',datetimepicker1.date);
测试通过sorry,上面的错了一点,这下行了
如select * from tablename where Datetime字段>#2002-8-30 13:50:50#
再就是要把adoquery的paramcheck属性设为false;