gpt4 book ai didi

sql-server - 在不同 SQL 服务器上将日期时间转换为小数时的差异

转载 作者:行者123 更新时间:2023-12-03 17:09:43 25 4
gpt4 key购买 nike

在两个不同的 SQL 服务器上,我运行以下查询:

 declare @myDatetime as datetime = '2017-07-04 23:42:32.400'
select CAST(@myDatetime AS DECIMAL(20,5))

我得到两个不同的结果:42918.98788和42918.98787

如果我转换为 DECIMAL(20,6),它可以正常工作 (42918.987875),但假设我需要将其转换为十进制 (20,5)。

在哪里可以找到舍入时行为差异的根源?是否有一个选项可以将最后 5 名向上或向下舍入?它是一种语言环境、国际环境、排序规则还是其他?是否是不同版本的 SQL(12.0.5000.0 与 13.0.4202.2)?

最佳答案

根据该文档: https://support.microsoft.com/en-us/help/4010261/sql-server-2016-improvements-in-handling-some-data-types-and-uncommon

Microsoft 对处理某些“不常见”转换的方式进行了一些更改:

SQL Server 2016 includes improvements to the precision of the following operations under compatibility level 130:

Uncommon data type conversions. These include the following:
float/integer to/from datetime/smalldatetime
real/float to/from numeric/money/smallmoney
float to real

因此,我怀疑这可能是我们在这种特定情况下对不同舍入所看到的情况。

关于sql-server - 在不同 SQL 服务器上将日期时间转换为小数时的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44918488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com