我有一个字段,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