关于SQL语句的写法问题,急急! (50分)

W

wishme1

Unregistered / Unconfirmed
GUEST, unregistred user!
DELPHI连接ACCESS数据库,怎样处理时间,比入有字段incomedate,为日期型
要取年,月,日,用paradox7表可如下写:
query1.sql.clear;
query1.sql.add('select * from mytable');
query1.sql.add('where extract(year from incomedate)=:incomeyear');
query1.ParamByName('incomeyear').asinteger:=strtoint(edit1.text);
query1.open;
改成ACCESS库就不行了,应该是处理时间的问题,请指教!
 
这个你要看看Access中有没有提供这些函数了,不一定有的
extract是BDE提供的,因为访问paradox是由BDE完成的
而访问Access是通过ODBC,由驱动程序完成的,BDE只是调用而已
如果Access本身没有提供,BDE也是没有办法的
你可以自己想办法解决,比如incomedate>=#2002-1-1# and incomedate<=#2002-12-31#
 
select * from youtable where month(or year) =:param
 
一种写法是用日期分隔符,Access的日期分隔符是#
with Query1 do
begin
Close;
SQL.Text:='select aaa,bbb from table1 where date1='+'#'+Edit1.Text'+'#';
Open;
end;

另一种写法是用参数:
with Query1 do
begin
Close;
SQL.Text:='select aaa,bbb from table1 where date1=:a';
Params[0].AsDateTime:=StrToDateTIme(Edit1.Text);
Open;
end;
 
顶部