菜鸟问日期查询老问题 ( 积分: 10 )

  • 主题发起人 主题发起人 plalzh
  • 开始时间 开始时间
P

plalzh

Unregistered / Unconfirmed
GUEST, unregistred user!
我的数据库DATE是日期/时间型字段,想通过ComboBox1.Text精确查询,我照葫芦画了个瓢,语句如下:
if RadioButton2.Checked then
ADOQuery1.SQL.Add('select *from GJB');
ADOQuery1.SQL.Add('where DATE =: MyDATE');
ADOQuery1.Parameters.parambyname('MyDATE').value:=StrToDate(ComboBox1.Text);

或者直接用ADOQuery1.SQL.Add('select *from GJB''where DATE:=StrToDate(ComboBox1.Text)');
但是都执行不了,提示出错,哪位给出个主意?
 
我想可能在你的
COMBOBOX的格式出了问题吧.
ADOQuery1.SQL.Add('select *from GJB''where DATE:=StrToDate(ComboBox1.Text)');
这个都可以运行?
不过.我建议你把日期的时间格式化下..
要不,可能查到的数据不准..
 
if radiobutton2.checked then
begin
try
with adoquery1 do
begin
sql.clear;
sql.add('select *from GJB''where DATE=:MYDATE');
ADOQuery1.Parameters.parambyname('DATE').value:=StrToDate(ComboBox1.Text);
open;
except
showmessage('无你想查找的日期');
combobox1.setfoucs;
exit;
end;
end;
我也不知正不正确你试一下吧 如果可以的话就发邮件到kaikaifuxin2008@163.com 目前我也正在处理数据库的软件 共同学习!!!!!!
 
fuxin198311老兄,不行啊;
wsc188,
ADOQuery1.SQL.Add('select *from GJB''where DATE:=StrToDate(ComboBox1.Text)');
这个我也试过,显示“不正常地定义参数对象.提供了不一致或不完整的信息”
可能是数据类型不一致,难道DELPHI里就没有与ACCESS 的日期/时间型字段相匹配的函数吗 ?
 
可能你输入是非日期格式
 
格式对么?你输入的是什么格式?
 
ADOQuery1.SQL.text='select *from GJB where DATE='+quotedstr(trim(ComboBox1.Text));或者你把combobox1換成DateTimePicker1,然后用formatdate('yyyy-mm-dd',DateTimePicker1.date)來控制日期格式,
 
ADOQuery1.SQL.Add('select *from GJB where DATE='''+ComboBox1.Text+'''');
 
晕.怎么不行..

有没有Q..加我.我帮你做..

164584819
 
我的数据库DATE是日期/时间型字段,想通过ComboBox1.Text精确查询,我照葫芦画了个瓢,语句如下:
if RadioButton2.Checked then
ADOQuery1.SQL.Add('select *from GJB');
ADOQuery1.SQL.Add('where DATE =: MyDATE');
ADOQuery1.Parameters.parambyname('MyDATE').value:=StrToDate(ComboBox1.Text);

或者直接用ADOQuery1.SQL.Add('select *from GJB''where DATE:=StrToDate(ComboBox1.Text)');
但是都执行不了,提示出错,哪位给出个主意?

TO楼主
你的第一种方法在参数MyDATE与冒号之间不需要空格,另外需要给参数指定类型
ADOQuery1.Parameters.parambyname('MyDATE').DataType := ftDateTime;
第二种方法Where DATE后面用等号,而不是Delphi中的赋值号。
 
formatedatetime格式化下
 
ACCESS的日期可以作为字符串型进行处理,即可以使用SQLSERVER一样的查询语法。或者你用#符号进行定界。你千万要注意,微软和甲骨文处理日期的方式是不同的。
 
同意楼上说法,可能是#的原因
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
941
SUNSTONE的Delphi笔记
S
后退
顶部