DB: SQL Server
A表的TStamp 字段 类型: datetime
B表的TStamp 字段 类型: datetime将B表的TStamp 给 A表的TStamp代码如下
Table_A_Set.Edit;
Table_A_Set.FieldByName('TSTAMP').AsSQLTimeStamp := Table_B_Set.FieldByName
                                                              ('TSTAMP').AsSQLTimeStamp;
Table_A_Set.Post;现在B表的TStamp内容为2005-06-29 19:16:31.247
但是赋值给A表的TStamp后,A表的内容变成了 2005-06-29 19:16:31.243请教大虾这是什么原因。

解决方案 »

  1.   

    改为下面的试试:
    Table_A_Set.Edit;
    Table_A_Set.FieldByName('TSTAMP').AsDateTime := 
      Table_B_Set.FieldByName('TSTAMP').AsDateTime;
    Table_A_Set.Post;
      

  2.   

    也许这样比较好,不要转换(因为转换的过程有可能造成精度的损失):
    Table_A_Set.FieldValues['TSTAMP'] := Table_B_Set.FieldValues['TSTAMP'];或者直接用sql语句更新看看
      

  3.   

    Table_A_Set.FieldByName('TSTAMP').AsString:= Table_B_Set.FieldByName
                                                                  ('TSTAMP').AsString;
      

  4.   

    不能用 AsSQLTimeStamp 这样会有一个转换过程,在这个过程中,DELPHI会将时间当作DOUBLE类型,
    建议用 ASVariant