delphi的实数型时间跟sql不一样!(0分)

  • 主题发起人 主题发起人 lmemail
  • 开始时间 开始时间
L

lmemail

Unregistered / Unconfirmed
GUEST, unregistred user!
以前一直没有注意这个问题,
昨天统计结果差了两天我才发现delphi的实数型时间跟sql不一样!

现在用下面一段代码测试结果真的入此

代码如下
begintime:TDate;
begin
memo3.Lines.Add('开始统计');
begintime:=MonthCalendar1.date; //开始时间;

memo3.Lines.Add(datetostr(begintime));
//早上情况
adoquery2.SQL.Clear;
adoquery2.SQL.add(' select * from signrecord ');
adoquery2.SQL.add(' where 日期时间>'+ floattostr(begintime));
adoquery2.SQL.add(' and 日期时间<'+ floattostr(begintime+0.5));
adoquery2.Active:=true;

memo3.Lines.Add('统计结束');

end;
本来应该显示MonthCalendar1控件选中的当天早上的数据,结果出来的是两天以后的的早上数据
这个表示delphi的日期,跟sql的日期差两天吗?

如begindate为2002-10-8的时间
而sql出来的结果集为 2002-10-10的时间段数据,
是否delphi的实数形的日期,跟sql的实数型日期差两天??????

[red]原来delphi定义1899-12-30日为实数0,所以1900-1-1为实数2;
而sql定义1900-1-1日为实数0;[/red]

所以用上面的语句就统计就会出现差两天的错!
我不知道为什么定义会不同,有人知道顶一下,不过直接用日期型到没有事情,用实数这样操作就会有问题!!
 
不会没有人碰到这样的情况吧!
有兴趣的人可以试试!
 
后退
顶部