with ADOQuery1 do
begin
i:=0;
close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Table1');
ADOQuery1.Open;
ADOQuery1.First;
while(not eof) do
begin
Application.ProcessMessages;
with ADOQuery2 do
begin
close;
ADOQuery2.SQL.Clear;
SQLstr:='insert into Table2(A1,CSRQ) values(';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+ADOQuery1.FieldByName('B1').AsString;
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+',';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+ADOQuery1.FieldByName('B2').AsString;
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+')';
//showmessage(SQLstr);
ADOQuery2.SQL.Add(SQLstr);
ADOQuery2.ExecSQL;
end; ADOQuery1.Next;
这段代码的作用是取出表Table1中的B1,B2字段并且插入表Table2中。现在问题在于B2为datetime型,而CSRQ为varchar型。例如:B2: 2002-8-12
想实现写入Table2中的CSRQ的值为 20020812请各位大虾指点迷津,完善一下程序。
begin
i:=0;
close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Table1');
ADOQuery1.Open;
ADOQuery1.First;
while(not eof) do
begin
Application.ProcessMessages;
with ADOQuery2 do
begin
close;
ADOQuery2.SQL.Clear;
SQLstr:='insert into Table2(A1,CSRQ) values(';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+ADOQuery1.FieldByName('B1').AsString;
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+',';
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+ADOQuery1.FieldByName('B2').AsString;
SQLstr:=SQLstr+'''';
SQLstr:=SQLstr+')';
//showmessage(SQLstr);
ADOQuery2.SQL.Add(SQLstr);
ADOQuery2.ExecSQL;
end; ADOQuery1.Next;
这段代码的作用是取出表Table1中的B1,B2字段并且插入表Table2中。现在问题在于B2为datetime型,而CSRQ为varchar型。例如:B2: 2002-8-12
想实现写入Table2中的CSRQ的值为 20020812请各位大虾指点迷津,完善一下程序。
或format函数, delphi帮助中都有示例
或者 %20020812%
就變成 datetime類型的
你可以在查询语句就实现这个.如下:
convert(varchar(8),datetimefield,112)
from Table1');
这个就很好:)
试一下,初学者同学习。
你的字段不是datetime吗,这是怎么取的呢,?