+ -
当前位置:首页 → 问答吧 → 同步服务器时间莫名其妙,求高手指点!!!!

同步服务器时间莫名其妙,求高手指点!!!!

时间:2011-11-28

来源:互联网

我同步服务器时间如下:
var 
  uLastSyncTimeWithServer : double; // last synchronize time with server.
  uLastSyncTimeWithServer : double; // interval time between work station and server

function ngGetServerTime: TDateTime;
begin
  if abs(Now - uLastSyncTimeWithServer) > 1/24 then begin
  with ClientRunQuery('SELECT GETDATE()') do try //客户端运行取服务期时间
  uIntervalTimeWithServer := Now - Fields[0].AsFloat;
  uLastSyncTimeWithServer := Now;
  finally
  Free;
  end;
  end;
  Result := Now - uIntervalTimeWithServer;
end;

保存时
  ...
  FieldByName('SysLMDate').AsDateTime := ngGetServerTime;
  Post;
现在的问题是有的部分客户保存的时间为1899-12-30 0:00:27。
求各位高人指点小弟,一般情况下都是正常的,但是有这个情况出现,我想哪里有问题,自己想了半天没想通,是不是客户自己的系统时间有问题?谢谢

作者: jonathanbear   发布时间: 2011-11-28

如果客户这样输入结果就是这样
还有一种情况,就是在Delphi中只输入时间,但SQL数据库在保存的时候,会自动加上这个最小的日期 
 

作者: kaikai_kk   发布时间: 2011-11-28

时间格式要看sql数据库的设定,有时要做时区转换的

作者: funxu   发布时间: 2011-11-28

数据库中是datetime类型的,我这里取时间没有客户输入的部分呀

作者: jonathanbear   发布时间: 2011-11-28