prss.net
当前位置:首页 >> sql CAst As DECimAl >>

sql CAst As DECimAl

cast(nvarchar变量或字段 as decimal(19,2)) 或 CONVERT (decimal(19,2),nvarchar变量或字段 ) --- 前提是 nvarchar中数据必须是合法的数字格式,否则转换出错

是否有空字符串,应该在转化之前作特殊处理 SQL Server语法: Case TRF_TRANAMT When '' Then Cast(Null as Decimal(16,2)) Else Cast(TRF_TRANAMT as Decimal(16,2))

没有double类型,可以试试float

你看下你那个xx字段,是不是有非数字的字符,要是有,肯定不行了 这样执行是没问题的

cast(nvarchar变量或字段 as decimal(19,2)) 或 CONVERT (decimal(19,2),nvarchar变量或字段 ) --- 前提是 nvarchar中数据必须是合法的数字格式,否则转换出错

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,''...

decimal(18,0) 18是定点精度,0是小数位数。 decimal(a,b) a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。 b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。

cast(要转换的 as decimal(m,n)) decimal精度比float高,转换没有问题。

select cast(3 as double)/cast(5 as double);

-- decimal(3,2),有效长度为3,小数位占2位CREATE TABLE test( num decimal(3,2))GO INSERT INTO test VALUES(2.247)INSERT INTO test VALUES(13.5)INSERT INTO test VALUES(4.347)INSERT INTO test VALUES(5.147)-- 执行 会报 溢出错误提示

网站首页 | 网站地图
All rights reserved Powered by www.prss.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com