Sql server 浮点和十进制表示法

Sql server 浮点和十进制表示法,sql-server,floating-point,decimal,ssms,regional-settings,Sql Server,Floating Point,Decimal,Ssms,Regional Settings,我在理解SSMS中的输出格式方面有点困难 表a: select sum(cast(fielda as decimal(18,6))) a, sum(fieldb) b from tablea a b -4208.370000 -4208,37 -2945.830000 -2945,83 31547.610000 31547,61 fielda=浮动 字段B=十进制(18,6) SQL: select sum(cast(fielda

我在理解SSMS中的输出格式方面有点困难

表a

select
  sum(cast(fielda as decimal(18,6))) a,
  sum(fieldb) b
from tablea
a               b
-4208.370000    -4208,37
-2945.830000    -2945,83
31547.610000    31547,61
  • fielda=浮动
  • 字段B=十进制(18,6)
SQL

select
  sum(cast(fielda as decimal(18,6))) a,
  sum(fieldb) b
from tablea
a               b
-4208.370000    -4208,37
-2945.830000    -2945,83
31547.610000    31547,61
生成网格,文本

select
  sum(cast(fielda as decimal(18,6))) a,
  sum(fieldb) b
from tablea
a               b
-4208.370000    -4208,37
-2945.830000    -2945,83
31547.610000    31547,61
所以浮点=','十进制='。'

这是区域设置(本地)、SSMS设置(应用程序)还是数据库

最后一种情况似乎并非如此,每个位置(pc)的结果不同。我认为浮点和十进制都可以被视为一个“数字”,所以区域设置似乎很奇怪。任何SSMS设置我都不知道

有办法解决这个问题吗?如何解决这个问题(=相同的结果)

SSMS 10

电脑区域设置NL

在控制面板中检查您的区域设置。我想这就是问题所在。

我看不到一个设置可以改变浮点数或十进制数的值。或者你的意思是我不应该在我的区域设置中使用NL设置?SSMS似乎忽略了区域设置,至少在格式化结果时是这样。最近我自己也遇到了这个问题。这里的问题不是SSMS是否忽略区域设置。这是因为它忽略了十进制的区域设置,而不是浮动或货币的区域设置(它应该忽略全部或无)