将nvarchar转换为int时转换失败

Abs*_*Abs 3 t-sql sql-server

我有一个varchar字段,包含数字和日期作为字符串.我想更新此字段中大于720的所有数字.我首先尝试进行选择,但是我收到此错误:

Conversion failed when converting the nvarchar value '16:00' to data type int.
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

select id, case(isnumeric([other08])) when 1 then [other08] else 0 end
from CER where sourcecode like 'ANE%' --and other08 > 720
Run Code Online (Sandbox Code Playgroud)

当我取消注释最后一部分时,它会失败.

我试图让所有数字大于720,但我不能做comaprison.它在铸造和转换时也会失败.

谢谢大家的帮助

Win*_*ith 7

您还需要在WHERE子句中执行检查和转换:

SELECT 
       id, 
       CASE WHEN isnumeric([other08]) = 1 THEN CAST([other08] AS INT) ELSE 0 END
FROM   CER 
WHERE  sourcecode LIKE 'ANE%' 
AND CASE WHEN isnumeric([other08]) = 1 THEN CAST([other08] AS INT) ELSE 0 END > 720
Run Code Online (Sandbox Code Playgroud)