在表中的字段类型可以为NULL,且数据全为数字或者“”的情况下,直接把字段类型为
varchar
更改为
decimal
有可能会提示“
将数据类型 varchar 转换为 decimal 时出错
”,
可以先把字段类型更改为
int
,然后在把字段类型更改为
decimal
,
但是这样会把此字段值为“”的数据全部改为0,
如果数据为0有影响的话,可以再把值为0的数据改为NULL。
原表设计:
alter table
temp
alter column
phone
int
null
alter table
temp
alter column
phone
decimal
null
更改后的表设计:
更改后的表数据:
update
temp
set
phone=
NULL
where
phone=0
-------------------------------------------------------------------------------------------------------------------------------------
菜鸟一枚,本文只是方便个人日后学习并使用,文中如有错误,欢迎各位大佬指点!
转载于:https://www.cnblogs.com/MonkeyDWang/p/11106836.html
原文链接:
http://www.cnblogs.com/MonkeyDWang/p/11106836.html
今天在操作
数据库
时,需要将字符串
转
换成
Decimal
类型
。代码如下:
selectcast('0.12'as
decimal
(18,2));
selectconvert(
decimal
(18,2),'0.12');
当需要将科学计数法的数字字符串
转
换成
Decimal
时,这2种写法都报错:
Msg 8114, Level 16, State 5, Line 1
Error...
在我们写代码的实际业务中,有时候实体类用的是String,
数据库
中自然是
VARCHAR
类型
,但是如果这个实体的属性值放的是数字
类型
,你查询的时候又需要对它进行排序。sql怎么写呢。
别担心MySQL提供了
转
换方法:CAST ,CONVERT
例如:我把
VARCHAR
类型
的价格
转
换成
DECIMAL
然后再进行排序 1.select p...
就成功的解决错误了 。。下面是关于原理的讲解肯定方法不唯一 至于错误,的产生,这个肯能和
数据库
myeclpise 之间的接口有关系 ,数据存储来回
转
换。这就当一个经验,有这个函数 ,以后项目有错误就这...
一般情况下,
sqlserver
会自动完成数据
转
换。但这种
转
换有时候很容易出错,尤其是n
varchar
转
换为numeric时。如果能够明确数据
类型
,最好显式
转
换。
举个我遇到的例子,
SELECT * FROM ITEM_INFO_TEST WHERE OBJECT_NO=’2’ AND COL530<5000.00
//COL530在
数据库
中
类型
为n
varchar
(30),实际查询的时候值为4
在我们写代码的实际业务中,有时候实体类用的是String,
数据库
中自然是
VARCHAR
类型
,但是如果这个实体的属性值放的是数字
类型
,你查询的时候又需要对它进行排序。sql怎么写呢。
别担心mysql提供了
转
换方法:CAST ,CONVERT
例如:我把
VARCHAR
类型
的价格
转
换成
DECIMAL
然后再进行排序
1.select pri
转
换数据发生 消息 8115,级别 16,状态 6,第 1 行 将 n
varchar
转
换为数据
类型
numeric 时出现算术溢出错误。 n
varchar
是带很长小数,直接
转
换成
decimal
失败 解决方案: 先
转
换成float 再
转
换成
decimal
或者int(去掉小数位) CAST(CAST(TRANS_CHARGE AS FLOAT) AS INT) Wh...
select t.totalprice*(select cast(s.value as
decimal
(3,2)) from sys_param s where s.name='积分') as info from trade_info t
在做查询乘法运算的时候,碰到了
varchar
跟int相乘变成字符串拼接的问题,
通过cast(value as type),将
varchar
转
为
sqlserver
搜索中怎么把
varchar
类型
转
换成numeric
类型
可以用cast来
转
换
如:列名叫grade,表名为A select cast(grade as numeric(y,x)) from A 其中y代表数据长度,x代表小数位长度
注意:grade中必须全为数字或小数点,如果存在中文或英文,则运行时会报错
转
载于:https://www.cnblogs.com/...