delphi的tdatetime就是一个double型,它的单位为天,一天为86400S,所以可以这样 var t:tdatetime; begin t:=EncodeDate(2010,1,1)+31200/86400; Edit1.Text:=FormatdateTime('yyyy.mm.dd hh:mm:ss',t); end;
keiy再帮忙看看,怎么用FormatdateTime('yyyy.mm.dd hh:mm:ss',t);看到的和写到数据库中的不一样呀 通过Edit1.Text:=FormatdateTime('yyyy.mm.dd hh:mm:ss',t); 看到的是2010.1.27 08:40:00 而写到数据库中变成了2010-1-29 00:00:00 函数如下 function TimeChange(t:integer;a:integer):TDateTime;//把时间格式转换为数据库中的类型 var r:TDateTime; i:integer; temp:double; begin i:=0; temp:=0; if a=1 then i:=t+43200 else i:=t; r:=EncodeDate(2010,1,27)+i/86400; result:=r; end; 显示调用如下: procedure TSDIAppForm.Button1Click(Sender: TObject); var t:TdateTime; begin t:=TimeChange(31200,0); Edit1.Text:=FormatdateTime('yyyy.mm.dd hh:mm:ss',t); end; 数据库调用如下 ADOStoredProc.Parameters.CreateParameter('Time',ftInteger,pdInput,4,TimeChange(31200,0)); 麻烦了,谢谢!
var
t:tdatetime;
begin
t:=EncodeDate(2010,1,1)+31200/86400;
Edit1.Text:=FormatdateTime('yyyy.mm.dd hh:mm:ss',t);
end;
通过Edit1.Text:=FormatdateTime('yyyy.mm.dd hh:mm:ss',t); 看到的是2010.1.27 08:40:00
而写到数据库中变成了2010-1-29 00:00:00
函数如下
function TimeChange(t:integer;a:integer):TDateTime;//把时间格式转换为数据库中的类型
var
r:TDateTime;
i:integer;
temp:double;
begin
i:=0;
temp:=0;
if a=1 then
i:=t+43200
else
i:=t;
r:=EncodeDate(2010,1,27)+i/86400;
result:=r;
end;
显示调用如下:
procedure TSDIAppForm.Button1Click(Sender: TObject);
var
t:TdateTime;
begin
t:=TimeChange(31200,0);
Edit1.Text:=FormatdateTime('yyyy.mm.dd hh:mm:ss',t);
end;
数据库调用如下
ADOStoredProc.Parameters.CreateParameter('Time',ftInteger,pdInput,4,TimeChange(31200,0));
麻烦了,谢谢!
TDateTime是浮點型的,你的參數是ftInteger,轉成整型當然不對了,這里要用ftFloat或ftDateTime
r:=Now+i/86400;返回的当前日期(包括时分秒)+时间i
我现在想要当天0时+时间i,请问怎么处理,谢谢!