SQL Server isdate检查无法按预期工作

时间:2016-11-27 12:26:42

标签: sql-server type-conversion

我收到错误:

  

转换字符串

时转换日期和/或时间时转换失败

使用以下代码:

select 
    case 
       when isdate('19' + left(somestring, 6)) = 1 
          then cast('19' + left(somestring, 6) as date) 
    end 
from 
    sometable

谁能告诉我我做错了什么?

另外,我如何看到导致错误的字符串?

1 个答案:

答案 0 :(得分:0)

从SQL Server 2012开始,您可以使用 TRY_CAST 来确保转换不会失败,而是返回null

在你的情况下,它有点像下面

TRY_CAST('19' + LEFT(somestring, 6) AS DATE)