Delphi中的FloatToStr(Now)与SQL Server中的Cast(GETDATE() as float)之间的区别
为什么使用以下命令在 Delphi 和 SQL Server 中的日期转换之间存在差异:
SQL Server :
SELECT CAST(GETDATE() AS FLOAT)
Delphi :
writeln(floattostr(now));
示例:今天
SQL Server = 40871.431264506
Delphi = 40873.4333729861
为什么两个结果不同呢?
Why is there a difference between the conversion of a date in Delphi and SQL Server with these commands:
SQL Server :
SELECT CAST(GETDATE() AS FLOAT)
Delphi :
writeln(floattostr(now));
Example: For today
SQL Server = 40871.431264506
Delphi = 40873.4333729861
Why are the two results different?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为许多语言在内部处理日期的方式不同。它们可能会也可能不会在内部将它们存储为浮点数,并且也可能在不同的“开始”日期开始计数。例如,Delphi 从 1899 年 12 月 30 日开始(TDateTime 为 0)。
另请参阅此链接。
Because many languages have different ways of dealing with dates internally. They may or may not store them internally as a float, and may also start counting at different "starting" dates. For instance, Delphi starts at 12/30/1899 (a TDateTime of 0).
See also this link.