У меня есть два поля
CallLength(varchar(10)) and
CallLengthActual(varchar(10))
, которые содержат значения в формате чч: мм: сс.
Мне нужно найти разницу между двумя полями в секундах, которая прекрасно работает, когда данные отформатированы правильно.Некоторые данные отформатированы неправильно, и когда я пытаюсь привести их к целому числу, я получаю сообщение об ошибке «Преобразование не удалось при преобразовании значения varchar 'x' в тип данных int".
Есть ли способ просто игнорировать данные, которые отформатированы неправильно?Я использую SQL Server 2012, и в документах говорится, что TRY_CAST поддерживается, но, похоже, он не работает с моей версией.
(CAST((SUBSTRING([CallLength],0,(CHARINDEX(':',[CallLength],0)))*3600)+(LEFT(RIGHT([CallLength],5),2)*60)+RIGHT([CallLength],2) AS int) -
CAST((SUBSTRING([CallLengthActual],0,(CHARINDEX(':',[CallLengthActual],0)))*3600)+(LEFT(RIGHT([CallLengthActual],5),2)*60)+RIGHT([CallLengthActual],2) AS Int)) AS Variance