Delphi中的FloatToStr(Now)和SQL Server中的Cast(GETDATE()为float)之间的区别

时间:2011-11-26 06:04:12

标签: sql sql-server delphi date

为什么使用这些命令在Delphi和SQL Server中转换日期之间存在差异:

SQL Server:

SELECT CAST(GETDATE() AS FLOAT)

德尔福:

writeln(floattostr(now));

示例:今天

SQL Server = 40871.431264506 
Delphi     = 40873.4333729861

为什么两种结果不同?

1 个答案:

答案 0 :(得分:4)

因为许多语言在内部处理日期的方式不同。它们可能会或可能不会在内部将它们存储为浮动,也可能在不同的“开始”日期开始计数。例如,Delphi于1899年12月30日开始(TDateTime为0)。

另见this link