【问题标题】:Difference between FloatToStr(Now) in Delphi and Cast(GETDATE() as float) in SQL ServerDelphi 中的 FloatToStr(Now) 和 SQL Server 中的 Cast(GETDATE() as float) 之间的区别
【发布时间】:2011-11-26 06:04:11
【问题描述】:

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

SQL 服务器:

SELECT CAST(GETDATE() AS FLOAT)

德尔福:

writeln(floattostr(now));

示例:今天

SQL Server = 40871.431264506 
Delphi     = 40873.4333729861

为什么两个结果不同?

【问题讨论】:

  • 你能展示你得到的不同结果吗?你有一个具体的问题吗?上下文可能会让别人更容易帮助你。
  • 今天:(SQL Server) Select Cast(GetDate() as Float) : 40871.431264506 (Delphi) Writeln(FloatToStr(Now)); : 40873.4333729861
  • 为了便于阅读,我已将示例添加到您的问题中。
  • SQL Server 从发送到它的任何时间都减少毫秒。

标签: sql sql-server delphi date


【解决方案1】:

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

另见this link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-31
    • 2014-08-18
    • 1970-01-01
    • 2014-08-05
    • 2013-08-21
    • 2011-07-09
    • 2015-02-06
    • 1970-01-01
    相关资源
    最近更新 更多