用ADO控件与数据库连接起来date //取系统日期 now //取系统日期时间 ADOQuery.sql.add('insert ......')
贴个代码给大家看看,我以前自己弄的 procedure TFrmTimeset.RzBitBtn1Click(Sender: TObject); var sqlscript, tempstr: string; tempdate: tdatetime; monthValue: integer; begin sqlscript := 'select 登陆日期, 流水批号, 期间段 from 批号'; with dmmaster.ADOGeTGuest do begin if Active then Active := false; CommandText := sqlscript; active := true; tempdate := strtodate(datetostr(fieldbyname('登陆日期').AsDateTime)); if (tempdate >date()) then begin infomessage('当前系统日期小于最后登陆时间,请调整当前') end else begin bperiod := copy(formatdatetime('yy', date()), 2, 1); monthValue := strtoint(formatdatetime('mm', date())); case monthvalue of 10: tempstr := 'A'; 11: tempstr := 'B'; 12: tempstr := 'C'; else tempstr := inttostr(monthvalue); end ; bperiod := bperiod + tempstr; if fieldbyname('期间段').AsString <>bperiod then begin edit; fieldbyname('期间段').AsString := bperiod; fieldbyname('流水批号').AsInteger := 1; fieldbyname('登陆日期').AsDateTime := now(); post; end else begin edit; fieldbyname('登陆日期').AsDateTime := now(); post; end; FrmTimeset.Hide ; Application.CreateForm(Tfrmmain, frmmain); frmmain.ShowModal ; FrmTimeset.Close; end end; { if (tempdate)>LocDay.Date then begin infomessage('当前系统时间小于最后登陆时间,请调整当前系统时间!') end else begin with dmmaster.ADOEXEC do begin if Active then Active :=false; Bperiod:=formatdatetime('yy',Date )+formatdatetime('mm',Date ); sqlscript:='select count(期间段) as countnum from 批号 where 期间段='''+bperiod+''''; sql.Clear ; sql.Add(sqlscript); active:=true; if fieldbyname('countNum').AsInteger=0 then begin active:=false; sqlscript:='update 批号 set 期间段='''+bperiod+''', 流水批号=1,登陆日期=#'+datetimetostr(now())+'#'; sql.Clear ; sql.Add(sqlscript); ExecSQL; end else begin active:=false; sqlscript:='update 批号 set 登陆日期='''+datetimetostr(now())+''''; sql.Clear ; sql.Add(sqlscript); ExecSQL; end ; active:=false;; end; close; end; end;
有的地方可一用formatdatetime ,但是习惯了用datetimetostr
between # date1 # and # date2 #,呵呵
取系统日期 Date 日期时间 TimeDatabase.table.field.value:=DateToStr(Date); Datebase.table.field.value:=DateTimeToStr(Time);
now //取系统日期时间
ADOQuery.sql.add('insert ......')
procedure TFrmTimeset.RzBitBtn1Click(Sender: TObject);
var sqlscript, tempstr: string;
tempdate: tdatetime; monthValue: integer;
begin
sqlscript := 'select 登陆日期, 流水批号, 期间段 from 批号';
with dmmaster.ADOGeTGuest do
begin
if Active then Active := false;
CommandText := sqlscript;
active := true;
tempdate := strtodate(datetostr(fieldbyname('登陆日期').AsDateTime));
if (tempdate >date()) then
begin
infomessage('当前系统日期小于最后登陆时间,请调整当前')
end else
begin
bperiod := copy(formatdatetime('yy', date()), 2, 1);
monthValue := strtoint(formatdatetime('mm', date()));
case monthvalue of
10: tempstr := 'A';
11: tempstr := 'B';
12: tempstr := 'C';
else
tempstr := inttostr(monthvalue);
end ;
bperiod := bperiod + tempstr;
if fieldbyname('期间段').AsString <>bperiod then
begin
edit;
fieldbyname('期间段').AsString := bperiod;
fieldbyname('流水批号').AsInteger := 1;
fieldbyname('登陆日期').AsDateTime := now();
post;
end
else
begin
edit;
fieldbyname('登陆日期').AsDateTime := now();
post;
end;
FrmTimeset.Hide ;
Application.CreateForm(Tfrmmain, frmmain);
frmmain.ShowModal ; FrmTimeset.Close;
end
end;
{ if (tempdate)>LocDay.Date then
begin
infomessage('当前系统时间小于最后登陆时间,请调整当前系统时间!')
end
else
begin
with dmmaster.ADOEXEC do
begin
if Active then Active :=false;
Bperiod:=formatdatetime('yy',Date )+formatdatetime('mm',Date );
sqlscript:='select count(期间段) as countnum from 批号 where 期间段='''+bperiod+'''';
sql.Clear ;
sql.Add(sqlscript);
active:=true;
if fieldbyname('countNum').AsInteger=0 then
begin
active:=false;
sqlscript:='update 批号 set 期间段='''+bperiod+''', 流水批号=1,登陆日期=#'+datetimetostr(now())+'#';
sql.Clear ;
sql.Add(sqlscript);
ExecSQL;
end
else
begin
active:=false;
sqlscript:='update 批号 set 登陆日期='''+datetimetostr(now())+'''';
sql.Clear ;
sql.Add(sqlscript);
ExecSQL;
end ;
active:=false;;
end;
close;
end;
end;
Date
日期时间
TimeDatabase.table.field.value:=DateToStr(Date);
Datebase.table.field.value:=DateTimeToStr(Time);
Datebase.table.field.value:=DateTimeToStr(Time);
DateValue TimeValue 可以把日期和时间分别的转换
或用time()
with table1 do
begin
append;
fields[0].asdatetime:=time();
post;