在sql server数据库中将一个nvarchar类型的空值转换成decimal(18,3)类型

在sql server数据库中将一个nvarchar类型的空值转换成decimal(18,3)类型,第1张

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

from sm_so ,每个字段都进行一次类型转换

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实体类的对应属性类型应该为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10101670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存