这是将字符串类型转数字类型时发生的转换错误。解决方法:使用CAST(ISNULL(aa.tf004, 0) as NUMERIC(15,4) ),强转为数字类型之后,再进行加减乘除运算。
出现
问题的原因:
这个问题
出现
的原因是你
varchar
类型的数据是纯数字组成。并且这些纯数字个数大于5.超过Int或Bigint的范围.比如:订单号Oid=1234567890
解决的办法:在由纯数字组成的字符串开始和末尾加上''。比如 Oid='1234567890'
转载于:https://www.cnblogs.com/sunxi/archive/2012/12/06/...
日期
时
间转字符串 代码如下:Select CONVERT(
varchar
(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(
varchar
(100), GETDATE(), 1): 05/16/06 Select CONVERT(
varchar
(100), GETDATE(), 2): 06.05.16 Select CONVERT(
varchar
(100), GETDATE(), 3): 16/05/06 Select CONVERT(
varchar
(100), GETDATE(), 4): 16.05.06 Select CONV
实际上原因是:100在decimal类中存储
时
真正值为:100.00,长度为5。而字段长度定义为4,就溢出了。
也就是说设计数据库字段
时
,长度是包含小数位的,这是一个低级
错误
。
declare @i int set @i=’a’ set @i=cast(‘a’ as int) set @i=convert(int, ‘a’) print @i –输出结果为:将
varchar
值 ‘a’
转换
为
数据类型
为 int 的列
时
发生语法
错误
。这一点与java不一样
declare @ch
如果我们数据库的ID设置为
varchar
型的 在查询的
时
候order by id的话我们是不希望看到如下情况的。
我们可以把
varchar
转换
为int 然后进行排序一、 代码如下: select * from yourtable order by cast(yourcol as int); 适用于SQLServer Oracle 二、 代码如下: select * from yourtable order by convert(int,yourcol); 仅适用于SQLServer 作者 itmyhome
您可能感兴趣的文章:SQL S
@num=1; 把num类型转成n
varchar
类型 cast(@num as n
varchar
(10)) @str=’123′; 把str
转换
成int 类型 cast(@str as int)
您可能感兴趣的文章:详解SQL Server中的
数据类型
详解MySQL
数据类型
int(M)中M的含义mysql存储引擎和
数据类型
(二)Java
数据类型
与MySql
数据类型
对照表SQL Server
数据类型
转换
方法SQL Server比较常见
数据类型
详解SQLite教程(七):
数据类型
详解SQL Server
数据类型
char、nchar、
varchar
、n