Jso*_*son 2 sql-server datetime sql-server-2017
有人可以解释一下,为什么我收到错误
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
当我在 SQL Server 2017 上执行以下代码时。我只收到 0.999 毫秒的错误
SELECT CAST('9999-12-31 23:59:59.999' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
结果:
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
然后我尝试:
SELECT CAST('9999-12-31 23:59:59.998' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
结果:9999-12-31 23:59:59.997
然后我尝试:
SELECT CAST('9999-12-31 23:59:59.997' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
结果:9999-12-31 23:59:59.997
根据文档,日期时间范围介于 1753 年 1 月 1 日和 9999 年 12 月 31 日之间。同样基于文档,时间范围介于 00 到 23:59:997 之间。
因此,如果您进行四舍五入,则在 998 处将向下舍入到 997。在 999 处,它应向上舍入到超出范围的 1 月 1 日 10000。(sql-server中datetime的精度为3.33ms)
| 归档时间: |
|
| 查看次数: |
1558 次 |
| 最近记录: |