我想将字符串转换为int,如下所示:
CAST(TestSth3.Emp_Code AS int)
我需要在水晶报告中输出1234,当我从数据库获得输出时正确显示,但在Crystal中它再次转换为1,234而不是1234。
我正在使用vb.net 2008和SQL服务器。
答案 0 :(得分:2)
我认为你需要尝试这个解决方案,在字符串
中将','替换为''看看下面的代码
CAST(REPLACE(TestSth3.Emp_Code, ',', '') AS int) As Clm
答案 1 :(得分:1)
目前还不清楚你的问题我只是在这里指出一些事实
如果你的字符串是1234
那么当你尝试select cast(yournum,int)
时会给你正确的结果
例子
select cast('1234'as int) as num
将会产生结果
1234
或者你的字符串是1,234
然后
尝试以下它将给出结果
declare @num varchar(10) ='1,234'
select CONVERT(int, replace(@num,',',''))as number
或
select CAST(replace(@num,',','') AS int)as number2
结果1234
你还需要仔细检查TestSth3.Emp_Code
那是什么意思?这是一个参数?
如果是,那么需要@before,我认为不可能创建一个参数名称,包括。(点)所以仔细检查一下。
<强>更新强>
如果基于水晶报告的问题则按照以下步骤进行
右键单击该字段,然后选择“格式化对象”。选择 样式列表中的“自定义样式”,然后单击“自定义”。打钩 “千位分隔符”,以及任何其他不需要的格式。
如果失败,您可以尝试选择字段并删除“,” 属性窗口中属性“ThousandSeperator”的值。
或使用以下公式
CStr(YourField, 0, '')
答案 2 :(得分:0)
我认为this post更好地总结了问题。 @MattWhitfield说:
格式化显示数字是应该在 显示图层,而不是数据库中。所以,无论如何 应用程序此数据最终被使用,您应该在那里格式化它。 不幸的是,Management Studio在这方面没有提供太多控制权 方面。
编辑:整数没有格式。例如。六个鸡蛋被格式化为鸡蛋,而不是数字,但它们仍然是6.格式与数字无关。但是,如果您想要显示特定格式的整数(带或不带千位分隔符 - 逗号),请在报告或VB表单中将其再次转换回字符串 ,而不是在数据库中(或将其保留为字符串,因为它已经是一个字符串)。
答案 3 :(得分:0)
简单的方法是使用水晶报告功能:
ToNumber(TestSth3.Emp_Code)