我用Delphi+access来做程序,程序把一个开始时间,和结束时间写到卡片里,写成功后,把卡号,卡上的开始时间和结束时间,以及做卡时间保存到数据库。
  程序一直运行正常,但是我从客户的数据库里发现,从2004-10-01号开始,数据库里保存的做卡记录出现下面的情况:开始时间为2004-10-01 01:30:00,但是数据库里却是2010-01-04 01:30:00;
         截止时间为2004-10-02 01:30:00,但是数据库里却是2010-02-04 01:30:00;
         做卡时间为2004-10-01 01:30:00,但是数据库里却是2010-01-04 01:30:00;
  但是从2004-10-12号开始,数据又是一切正常的。
  我写的时候,用到很多Delphi的Now,请问跟用Now有关吗,为什么有的时候又是正确的?
  急,在线等。

解决方案 »

  1.   

    没见过这种情况,如果不用到时,分,秒的话,就用date()试试
      

  2.   

    应该是和NOW()没有什么关系,可能是你的数据库的字段设置或保存的问题。
      

  3.   

    function Now: TDateTime;
    {$IFDEF MSWINDOWS}
    var
      SystemTime: TSystemTime;
    begin
      GetLocalTime(SystemTime);
      with SystemTime do
        Result := EncodeDate(wYear, wMonth, wDay) +
          EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
    end;
    //直接读取系统时间,所以你上面的问题不是now的问题,而是人为因素,肯定是有人在这期间修改了系统时间造成的