13

我想将一个表的所有行插入另一个表,我还想将一个nvarchar字段转换为bigint,但是当我使用convert(bigint, col1)SQL Server 时显示错误:

将数据类型 nvarchar 转换为 bigint 时出错

我该如何解决这个问题?

4

4 回答 4

26

您可以尝试使用ISNUMERIC来确定那些确实是数字的行:

UPDATE dbo.YourTable
SET BigIntColumn = CAST(NVarcharColumn AS BIGINT)
WHERE ISNUMERIC(NVarcharColumn) = 1

这将转换那些可以转换的行 - 其他行需要手动处理。

于 2011-04-29T06:36:39.960 回答
0

您应该将 bigint 转换为 nvarchar,反之亦然 cast(Other_Column_name as nvarchar) not cast (Column_Name as bigint)

于 2018-05-20T11:30:55.920 回答
0

你可以试试这个:

CAST(CAST(col1 as NUMERIC) as BIGINT)
于 2021-10-13T04:56:32.717 回答
0

在这里,我将列的 navrchar 值转换为 bigInt ,然后执行两列的加法发现打击:

SELECT (CAST(col1 AS BIGINT) + CAST(col2 AS BIGINT)) AS TotalValue from tableName 
于 2022-01-10T16:22:58.843 回答