不同的数据库隐式地键入不同的数字文字,
1.0作为decimal(2,1)1.0作为numeric哪一个是对的?
发布于 2018-06-12 07:36:40
两者在文字存储方面都是正确和兼容的。规范中有两种类型的数字文字,
<exact numeric literal><approximate numeric literals>浮点,由科学符号 (与E或e一起使用)触发对于确切的数字文字(ENL),
22) ENL的声明类型是实现定义的精确数字类型,其标度是
<digit>s在<period>右侧的数目。应该有一个精确的数字类型,能够准确地表示ENL的值。
对于近似数字文本(ANL),
23)
<approximate numeric literal>ANL的声明类型是实现定义的近似数值类型。ANL的值不应大于最大值,也不应小于可以由近似数值类型表示的最小值。
这意味着类型只需要能够保存文字,其余的就留给实现了。
摘自SQL2011n规范
https://dba.stackexchange.com/questions/209360
复制相似问题