我有一个字段,VARCHAR(6)我正在尝试将其插入到另一个类型bigint 的表中,这给了我一个错误
(从数据类型 varchar 转换为 bigint 时出错
这就是我在做什么
CONVERT(bigint, seconds) as seconds
有人可以帮忙解决这个问题吗?
我有一个字段,VARCHAR(6)我正在尝试将其插入到另一个类型bigint 的表中,这给了我一个错误
(从数据类型 varchar 转换为 bigint 时出错
这就是我在做什么
CONVERT(bigint, seconds) as seconds
有人可以帮忙解决这个问题吗?
这是答案
(CASE
WHEN
(isnumeric(ts.TimeInSeconds) = 1)
THEN
CAST(ts.TimeInSeconds AS bigint)
ELSE
0
END) AS seconds
另一种方法是执行以下操作:
SELECT
CAST(P0.seconds as bigint) as seconds
FROM
(
SELECT
seconds
FROM
TableName
WHERE
ISNUMERIC(seconds) = 1
) P0
我认为您的代码是正确的。如果您运行以下代码,它将转换被视为 varchar 的字符串 '60' 并返回整数 60,如果在第二个中存在包含字符串的整数,则它可以工作。
select CONVERT(bigint,'60') as seconds
它返回
60