SQL, Как преобразовать VARCHAR в bigint?

У меня есть поле VARCHAR(6) Я пытаюсь вставить его в другую таблицу типа bigint это дает мне ошибку

(Ошибка Преобразование из типа данных varchar в bigint

вот что я делаю

CONVERT(bigint, seconds) as seconds

Может ли кто-нибудь помочь в решении этой проблемы?

Ответ 1

Это ответ

(CASE
  WHEN
    (isnumeric(ts.TimeInSeconds) = 1) 
  THEN
    CAST(ts.TimeInSeconds AS bigint)
  ELSE
    0
  END) AS seconds

Ответ 2

альтернативой было бы сделать что-то вроде:

SELECT
   CAST(P0.seconds as bigint) as seconds
FROM
   (
   SELECT
      seconds
   FROM
      TableName
   WHERE
      ISNUMERIC(seconds) = 1
   ) P0

Ответ 3

Я думаю, что ваш код прав. Если вы запустите следующий код, он преобразует строку "60", которая обрабатывается как varchar, и возвращает целое число 60, если целое число содержит строку во втором, это работает.

select CONVERT(bigint,'60') as seconds 

и он возвращает

60