日期查询为何会出现【无效数据格式】的错误?

fleamboy 2005-01-06 01:05:21
我得Form中有一个Query1的ADO查询组件,
其SQL为(F01就是smalldatetime字段):
select * from T2170 where F01=:Da

为何使用如下语句的时候,会提示【无效数据格式】的错误???

Query1.Params[0].AsDate := Date;
Query1.Close;
Query1.Open;
...全文
387 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwang2003 2005-03-14
  • 打赏
  • 举报
回复
关注
slwang2003 2005-03-14
  • 打赏
  • 举报
回复
难道这个不行吗
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from lstz where rq=:temp');
adoquery1.Parameters.ParamByName('temp').Value:=formatdatetime('yyyy-mm-dd',form1.DateTimePicker1.Date);
showmessage(formatdatetime('yyyy-mm-dd',form1.DateTimePicker1.Date));
adoquery1.Open;
myth8860 2005-01-09
  • 打赏
  • 举报
回复
数据库中有表TEST(C1 char(10), C2 date)
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into TEST');
ADOQuery1.SQL.Add('values(:C1,:C2))';
ADOQuery1.Parameters.ParamByName('C1').Value:='dfsf';
ADOQuery1.Parameters.ParamByName('C2').Value:='2005-12-12';或者StrToDate('2005-12-12')
ADOQuery1.ExecSQL;
怎么老是报错啊?(无效的数据类型)
还有Binary类型的绑定的时候也报错
各位大侠救命啊!
gamaster 2005-01-06
  • 打赏
  • 举报
回复
Query1.Params[0].asdatetime:=now;
cyywhl 2005-01-06
  • 打赏
  • 举报
回复
query.fieldbyname('日期字段').asdatetime:=date;
sewindy530 2005-01-06
  • 打赏
  • 举报
回复
你的sql语句有问题吧...在mssql里日期条件要用单引号 ,access里要用#号

试试吧
cfwgson 2005-01-06
  • 打赏
  • 举报
回复
楼上的whbo(王红波(决心找份工作)) 说的是

Query1.Close;
Query1.Params[0].AsDate := Date;
Query1.Open;
Kshape 2005-01-06
  • 打赏
  • 举报
回复
这样吧!
with adoquery1 do
begin
sql.close;
sql.clear;
sql.add('select * from T2170 where F01=:Da');
parameters.parambyname('Da').value := date;
//我在sqlserver中是datetime类型,不知道smalldatetime 行不行
open;
end;
gxgyj 2005-01-06
  • 打赏
  • 举报
回复
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from lstz where rq=:temp');
adoquery1.Parameters.ParamByName('temp').Value:=formatdatetime('yyyy-mm-dd',form1.DateTimePicker1.Date);
showmessage(formatdatetime('yyyy-mm-dd',form1.DateTimePicker1.Date));
adoquery1.Open;
///用这个绝对行....
wyf99 2005-01-06
  • 打赏
  • 举报
回复
同意楼上,我也遇到过这样的问题,先把其转换成字符串后再进行操作。
tengjian1981 2005-01-06
  • 打赏
  • 举报
回复
query1.params[0].asstring:=datetostr(date);
JonnySun 2005-01-06
  • 打赏
  • 举报
回复
在Query.SQL中設置好select * from T2170 where F01=:Da的語句好

在Object Inspector內雙擊Params按鈕, 將Da參數DataType設為ftDate
ParamType=ptInput
就可以了
Query1.Params.ParamValues['Da'] := Date;
子秦1117 2005-01-06
  • 打赏
  • 举报
回复
建议你用query1.params[0].asstring:=datetostr(date);可以试试
todouwang 2005-01-06
  • 打赏
  • 举报
回复
那个sql里的da是什么?
todouwang 2005-01-06
  • 打赏
  • 举报
回复

Query1.Close;
Query1.Params[0].AsDate := Date;
Query1.Open;
何鲁青 2005-01-06
  • 打赏
  • 举报
回复
Query1.Parameters[0].value:=Date;//不行吗???
ygflydream 2005-01-06
  • 打赏
  • 举报
回复
你日期格式正确吗!adoquery1.fieldbyname('日期字段').asdatetime;
zsp0010 2005-01-06
  • 打赏
  • 举报
回复
学习
关注!
myth8860 2005-01-06
  • 打赏
  • 举报
回复
gxgyj(杰克.逊)的方法比较好

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧