转换数据类型报错怎么解决?

a2048 2014-09-30 11:44:10
DECLARE @Name varchar(50)
SET @Name=20.00

SELECT (Cast((@Name) As Int))

将 varchar 值 '20.00' 转换为数据类型为 int 的列时发生语法错误。

上面是个实验,我数据库里有个字段数据类型是 varchar的,但里面的数据都是整数后面带点00的,我想在查询时转换成 int型。
...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-09-30
  • 打赏
  • 举报
回复
 DECLARE @Name varchar(50)
    SET @Name=20.00
   
    SELECT CAST(Cast((@Name) As DECIMAL(10,2)) AS INT ),Cast((@Name) As DECIMAL(10,2))
	/*
	
            
----------- ---------------------------------------
20          20.00
	*/
reenjie 2014-09-30
  • 打赏
  • 举报
回复
如果是20.34,转换的结果是20还是21?如果是20的话,就可以使用下面的sql。 select floor(@Name)
發糞塗牆 2014-09-30
  • 打赏
  • 举报
回复
 DECLARE @Name varchar(50)
    SET @Name=20.00
   
    SELECT CAST(Cast((@Name) As DECIMAL(10,2)) AS INT )

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧