Select count(*); -- returns 1
Select $; -- returns 0.00
是否有可能解释这些MsSQL查询结果背后的原因?
答案 0 :(得分:1)
由于SQL Server将其转换为money
数据类型,因此您获得0.00。使用*
时,不会发生此类转换,因此会导致错误。
请参阅MSDN
当转换为金钱或小钱币时,假定整数为 货币单位。例如,将整数值4转换为 相当于4美元的钱(对于us_english,默认值 语言)。浮点数小数右边的数字 对于货币值,值四舍五入到小数点后四位。 正在转换为的数据类型char或varchar的表达式 整数数据类型必须只包含数字和可选的加号 或减号(+或 - )。领先的空白被忽略了。 表达 数据类型char或varchar转换为money也可以包含一个 可选小数点和前导美元符号($)。