select
case when charindex('g',isnull(DescFlexField_PrivateDescSeg3,''))=0 then cast(0 as decimal(18,3))
when charindex('g',isnull(DescFlexField_PrivateDescSeg3,''))>0
then cast(SUBSTRING(isnull(DescFlexField_PrivateDescSeg3,''),0,LEN(isnull(DescFlexField_PrivateDescSeg3,''))) as decimal(18,3))
else cast(DescFlexField_PrivateDescSeg3 as decimal(18,3))
end
MySQL中的decimal字段的类型改为float,float类型是可以直接进行json序列化的。这样只修改数据库,不修改代码,就可以修复问题。参考下图。另外,设置float类型的时候,小数点后一定要设置,可以设置为4,表示带4位小数。否则默认可能是带0位小数,就不准确了。如果你insert的数据类似‘0022’这种,在数据库中就变成0了。
您好!
MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的
一般来讲,任何 MySql 数据类型都可以被转换为一个 javalangString,任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型(当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题)
首先 你要分清 null与输入为空的区别
null:表示未知值,没有值
你所说的输入为空值:其实已经有值了,值是一个空的字符串即‘’,‘’转化成数字类型当然会报错。
建议在程序的前端保存的时候做一个校验,如果输入的是‘’,则转化为null 或者0 来保存就好了。
建议楼主百度一下 null与‘’ 的区别
以上就是关于在sql server数据库中将一个nvarchar类型的空值转换成decimal(18,3)类型全部的内容,包括:在sql server数据库中将一个nvarchar类型的空值转换成decimal(18,3)类型、sqlserver数据库插入decimaljava插入变成0、mysql字段类型为decimal,则java实体类的对应属性类型应该为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)