【发布时间】:2011-05-13 16:54:14
【问题描述】:
出于多种原因,我将日期时间值作为 sql 浮点类型(从 DateTime.OADate 转换而来)存储在数据库中,但是在某些情况下,最好从数据库中获取人类可读的日期/时间列。我发现我可以执行语句
SELECT CAST (timerecorded_utc as DATETIME) FROM tablename
它会给我我正在寻找的日期时间字符串,但它似乎正好相差 2 天。我意识到我可以修改语句(因为时间表示为双 1 天 = 1.0)为
SELECT CAST (timerecorded_utc-2.0 as DATETIME) FROM tablename
但我想知道这是否一致,在我看来,我缺少这种差异是有原因的。
【问题讨论】:
-
在将数据保存到数据库时会丢失一些精度吗?
-
我认为这与精度无关,因为精确到毫秒的时间是正确的。天数在小数点前计算,时间来自小数点后的值。如果它与精度相关,那么时间就会出错(至少我认为)
-
@Matthew,日期到浮点数的转换是什么样的?
-
@Matthew - 这是 SQL Server 还是 Oracle?
-
这是 MS SQL Server,实际上是 SQL CE(如果重要的话,它们的行为相同)