使用唯一编号在datetime字段中存储值

JD.*_*JD. 0 database delphi

我有以下方案,并将感谢任何建议如何解决此问题.

我们有一个数据库应用程序,其中包含一个DateTime字段的字段.我们过去从未使用过这个字段,但现在经过几百次安装后我们需要使用这个字段,但发现它不应该是一个DateTime字段.

我们可以创建脚本来更改数据库,但这会涉及太多的工作.

该字段需要存储一个唯一的值,我想知道是否给定一个字符串我可以得到一个唯一的数字,然后将其存储在dateTime字段(这是一个双精度).

我找到了这个方法:

   function Unc(s: string): UInt64;
   var
     x: Integer;
   begin
     Result := 0;
     for x := 1 to Length(s) do
       Result := Result + ((Ord(s[x])) shl ((x - 1) * 8));
   end;
Run Code Online (Sandbox Code Playgroud)

并且返回的值将分配给DateTime字段.

这是否有效,因为我担心范围检查错误/整数溢出,或者有更好的方法来执行此操作(而不是执行可能是正确方法的脚本)?

JD

Num*_*nor 8

我宁愿做正确的方法并创建脚本来更改数据库,因为它不使用它应该不是一个大问题(没有数据转换等)

  • 同意.如何放弃一个未使用的列并添加一个新的"太多工作",但是设计转换例程并确保它得到适当的安全检查不是太多的工作?!? (4认同)