【发布时间】:2021-02-28 11:54:43
【问题描述】:
似乎datetime2 在某些情况下无法保存datetime 值的值。这是预期的吗?
注意最后两列。还是转换损坏了数据?
SELECT
DATETIMEFROMPARTS (2021, 2, 28, 10, 11, 12, 267),
CONVERT(datetime, DATETIMEFROMPARTS (2021, 2, 28, 10, 11, 12, 267)),
CONVERT(datetime2, DATETIMEFROMPARTS (2021, 2, 28, 10, 11, 12, 267)),
CAST(DATETIMEFROMPARTS (2021, 2, 28, 10, 11, 12, 267) AS datetime2)
我并不真正需要这些转换,但我遇到了 Entity Framework 的问题,即生成 SQL 将我的 datetime 转换为 datetime2,导致将其加载到 C# DateTime 时会出现细微差异
【问题讨论】:
-
什么意思,它不能保存
datetime的值?datetime精确到 1/300 秒,datetime2可以精确到 1/1000000 秒。它可以保存datetime的每个值等等。 -
是的,这正是我的预期,但我提供的 SQL 讲述了一个不同的故事。
-
不,不是,@Stig。
-
简短答案 - 阅读文档。
-
@SM我已经读过了。但是如果 datetime 使用基于无限小数 (1/300) 的精度,那么 datetime2 应该如何表示呢? (精度相同)
标签: sql-server datetime2