SQL,如何将VARCHAR转换为bigint?

时间:2013-01-31 22:26:12

标签: sql sql-server

我有一个VARCHAR(6)字段我试图将其插入另一个bigint类型的表格中,但是它给了我一个错误

(错误从数据类型varchar转换为bigint

这就是我正在做的事情

CONVERT(bigint, seconds) as seconds

有人可以帮忙解决这个问题吗?

3 个答案:

答案 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