如何求两个日期间隔的天数(50分)

  • 主题发起人 主题发起人 huangbin
  • 开始时间 开始时间
H

huangbin

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL SERVER 7.0 某个数据库表中有一日期字段A(Date/Time),现在想求此
字段值与当前日期相隔的天数,已知用下式不行:
var res : TDatetime;
res := Date - Table.FieldByName('A').value;
那么,应如何做? 急!
 
试一试,先分别取整!再减!
而且res也不应该是Tdatetime!
 
怎吗取整,不明白
 
Trunc(date)-trunc(Table.FieldByName('A').value)
 
sql7中的函数 DATEDIFF(datepart, startdate, enddate)可以求两个日期相隔的天数、月数、年数等,根据参数datepart设置。
 
var res : double;

res := Date - Table.FieldByName('A').AsDateTime;
 
select datediff(day,'2000-01-09','2000-01-20'),则可求出天数。
select datediff(year,'2000-01-09','2000-01-20'),则可求出年数。
select datediff(month,'2000-01-09','2000-01-20'),则可求出周数等等。


 
var res : real;即可。

 
两个 TDateTime 直接相减即可.
 
R_Baggio is right !
 
//hand R_Baggio,hsw
 
SQL SERVER 7.0 某个数据库表中有一日期字段A(Date/Time),现在想求此
字段值与当前日期相隔的天数,已知用下式不行:
var res : TDatetime;
res := Date - Table.FieldByName('A').value;
那么,应如何做? 急!

>>res既然是天数,就应该是实数(real or double),
那样就对了,若你需要整数,则再按照自己的要求取整(round or trunc)!
 
你要的的是delphi中求两日期相隔的天数。

 
同意yubo的意见
 
何不取出来,用decode分解开,再处理日期
 
var
d:tdatetime;
begin
d:=strtodate('1999-7-28');
form1.caption:=floattostr(date-d);{这是从去年7-28到今天的天数差}
end;
 
if ( (DBEdit1->Field->AsString).Trim() != "" && (DBEdit2->Field->AsString).Trim() != "" )
Edit4->Text = IntToStr(DBEdit2->Field->AsDateTime - DBEdit1->Field->AsDateTime + 1);
 
XIAO_MIN答得完全正确,我试过了,快快给分吧,
他还少我100分呢?

哈哈哈。。。
 
var res : double;
t : integer;
res := Date - Table.FieldByName('A').AsDateTime;
t := 取整数函数(res);
对不起,取整数函数我不记得了你自己查一下。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部