我有一个VARCHAR(6)
字段我试图将其插入另一个bigint
类型的表格中,但是它给了我一个错误
(错误从数据类型varchar转换为bigint
这就是我正在做的事情
CONVERT(bigint, seconds) as seconds
有人可以帮忙解决这个问题吗?
答案 0 :(得分:25)
这是答案
(CASE
WHEN
(isnumeric(ts.TimeInSeconds) = 1)
THEN
CAST(ts.TimeInSeconds AS bigint)
ELSE
0
END) AS seconds
答案 1 :(得分:2)
另一种方法是做类似的事情:
SELECT
CAST(P0.seconds as bigint) as seconds
FROM
(
SELECT
seconds
FROM
TableName
WHERE
ISNUMERIC(seconds) = 1
) P0
答案 2 :(得分:2)
我认为你的代码是对的。如果你运行下面的代码,它转换字符串'60',它被视为varchar,它返回整数60,如果有包含字符串的整数,则它可以工作。
select CONVERT(bigint,'60') as seconds
然后返回
60