【发布时间】:2011-06-13 08:13:00
【问题描述】:
我在数据库中有一个列是 varchar。如何转换为整数以获得水晶报表中的总和。使用存储过程时是否可以将 varchar 转换为数字......
【问题讨论】:
-
为什么它首先存储为varchar?
-
另外,您使用的是什么数据库。请添加标签。
标签: c# database crystal-reports
我在数据库中有一个列是 varchar。如何转换为整数以获得水晶报表中的总和。使用存储过程时是否可以将 varchar 转换为数字......
【问题讨论】:
标签: c# database crystal-reports
不使用 Try/Catch 在 C# 中执行此操作:
int value = 0;
if (Int32.TryParse("string to parse", out value))
{
// Value parsed correctly
}
else
{
// Could not be parsed.
}
如果可能的话,您最好在数据库查询中执行此操作。也正如其他人所建议的那样,为什么将数字存储在 varchar 字段中?
编辑
Transact SQL 和PL/SQL 方言都支持CAST 函数。
您可以在查询中使用 - 尽管请注意您使用的实际数据库中可能存在细微差别。
SELECT ..., CAST(field_name AS int), ... FROM table_name ...
感谢 Anjay 的最有价值的贡献。
【讨论】:
应该这样做:
SELECT SUM(CONVERT(INT , varchar_column)) FROM [test]
【讨论】:
您在存储过程或视图中使用以下函数,并在将执行计算部分的 Crystal 报表中使用它们。
SELECT CAST(YourVarcharCol AS INT) FROM Table
or
SELECT CONVERT(INT, YourVarcharCol) FROM Table
http://msdn.microsoft.com/en-us/library/aa226054(v=sql.80).aspx
【讨论】: