如何在sql语句的select中带上变量?(100分)

I

itsme

Unregistered / Unconfirmed
GUEST, unregistred user!
我希望把一个表中的某些字段和当前的日期一起追加到另一个表中,象这样:
query.sql.add('insert into table1 select :rq,qdrh,sum(qdje) from table2 group by qdrh');
query.parambyname('rq'):=rq;
query.execsql;
其中qdrh,qdje是table2中的字段,rq是作为变量,代表当前的时间。
但这个语句不对,是不是变量rq不能这么用的?
!!这个问题已困扰我多日,各位大侠请帮帮忙。
 
用数据库的函数
如ORACLE的SYSDATE
放在语句中不是更好吗
SELECT SYSDATE,QDRH,SUM(QDJE)...
 
query.parambyname('rq').asstring:=FormatDateTime('YYYYMMDD',now);
"yyyymmdd"是你需要字符船的格式,now是取得系统时间
 
为什么大家不用.asDateTime???????????
 
to quicksilver:
不行。
在query.sql.add语句之前,我已将rq赋值。
rq:=datetostr(date);
 
to MrMengyi:
我用的是interbase数据库,我曾试过这么写:
SELECT DATE,QDRH,SUM(QDJE)...
也是不行。
 
to 完颜康:
我试过你的方法,也还是不行。提示"data type unknown"
还有什么招吗?
 
shortdateformat:='YYYY-MM-DD';
.....
query.sql.add('insert into table1 select :rq,qdrh,sum(qdje) from table2 group by qdrh');
query.parambyname('rq').asstring:=datetostr(rq);
query.execsql;


 
parameters.parambyname('rq').value:=rq;
如果是日期型字段,rq也是日期型的,不需要转换!
 
其实这种情况的出现往往是因为你的数据库的时间格式和你的程序运行的环境日期格式不同
如果以字符的方式传递的话数据库会自动去转换格式,但是你的字符串必须是按照数据库要
求的格式,如果不同则会因为转换失败而报错,解决这种问题的方法就是以时间类型传递参

var
rq:TDateTime;
begin
rq:=date;
query.sql.add('insert into table1 select :rq,qdrh,sum(qdje) from table2 group by qdrh');
query.parambyname('rq').asdatetime:=rq;//以时间格式传递参数
query.execsql;
end;

end;
 
select :rq,qdrh,sum(qdje) from table2 group by qdrh');这句不行,你去掉sum(qdje)
就行了。
 
同意terry_lzs,的方法,你可以跟踪一下rq参数的值
 
如果RQ字段是DATE型的话,SQL语句中应该写为TO_DATE('FORMAT STRING',RQ)
RQ为一个字符串
 
建议你用拼字符串的方法
'insert into table1 select '+edit.text + ',qdrh,sum(qdje) from table2 group by qdrh'
 
to robles:
我试过了,也是不行
 
query.sql.add('insert into table1 select :rq,qdrh,sum(qdje) from table2 group by qdrh');
query.parambyname('rq').DataType := ftDateTime;
query.ParamByName('rq').AsDateTime := rq;
query.execsql;
 
SQL := 'insert into table1 ' +
'select ' + formatdatetime('yyyy-mm-dd', 今天) + ',qdrh, sum(qdje) ' +
'from table2 ' +
'group by qdrh '
 

Similar threads

回复
0
查看
910
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
977
SUNSTONE的Delphi笔记
S
S
回复
0
查看
799
SUNSTONE的Delphi笔记
S
顶部