关于日期查询(50分)

心心

Unregistered / Unconfirmed
GUEST, unregistred user!
使用ACCESS数据库用ADOQUERY进行查询,如果打出数据库中日期字段超过某一日期的所有字段?

如当前日期是2001-5-11日,如果找到超过这一日期的所有记录?请给一个详细例子
 
select * from yourtable where date1 > '2001-5-11'
 
with DM.DataQuery do
begin
close;
sql.Clear;
sql.Add('select * from data where jyqx>' +
MainForm.StatusBar1.Panels[1].Text);/这个的值为当前日期now
open;
end;
这样写法对吗??
 
呵呵,大约就是这个意思了 :)
Delphi我不懂啊 :(
 
他会返回我全部的记录值,呵,那位知道是我哪里写错了??
 
你还是写成
sql.Add('select * from data where jyqx>:temp');
parambyname('temp').asdate:= STRTODATE(MainForm.StatusBar1.Panels[1].Text);
吧.
 
ADOQuery好像没有parambyname,
 
sql.Add('select * from data where jyqx>' +
''' + MainForm.StatusBar1.Panels[1].Text + ''')
 
错了,少了一个'
sql.Add('select * from data where jyqx>' +
'''' + MainForm.StatusBar1.Panels[1].Text + '''')
 
出现错误提示,"标准表达式的类型不匹配"
我的jyqx字段为FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date)
MainForm.StatusBar1.Panels[1].Text := FormatDateTime('yyyy-mm-dd', DateTimePicker2.Date);

是哪里错了??
 
Query.sql.add('Select * from data where 时间=:A');
Query.sql.ParamByName('A').AsDate:=StrtoDate(Edit.text);
Query.Prepare;
Query.Open;
 
是adoquery,不是query
 
如果是adoquery1必须是这样:
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'select * from DateTest where mydate = :DatetimeParam';
ADOQuery1.Parameters.ParamValues['DatetimeParam'] := Date;
ADOQuery1.Open;
给分吧!
 
谢谢liuxiaouo,现在测试正常的代码贴上,
with DM.DataQuery do
begin
close;
sql.Clear;
SQL.Text := 'select * from Data where jyqx <=:DatetimeParam';
Parameters.ParamValues['DatetimeParam'] := MainForm.StatusBar1.Panels[1].Text;
Open;
end;
//该段代码用是检测数据库中的日期是否超过当前日期
 
顶部