SqlServer2012新函数TRY_CONVERT不存在的问题解决

今天开发中在select列中使用convert把字符串转换成日期格式,有些字符串转换会报错,造成翻页翻着翻着就会500错误,由于需要生日字符串转换年龄还要排序,所以又无法在c#李转换.

我想c#里有tryparse,sql里搞不好也有。好在发现了有TRY_CONVERT 函数的存在,运行语句测试报错:

问题描述.
我们在SQL Server Management Studio中对数据库在SQL Server2012实例,试图运行下面的SELECT语句时:

SELECT TRY_CONVERT(date, ‘birthday’)

接收到服务端报错:(我是英文数据库服务器,中文可能是该函数没有定义)

Msg 195, Level 15, State 10, Line 1
‘TRY_CONVERT’ is not a recognized built-in function name.

 

造成原因.

这个sql语句不能够运行在 SQL Server 2005 (90)或SQL Server 2008 (100)的兼容级别.

 

解决办法.

数据库上右键, 选择属性, 然后切换到选项页, 修改数据库的兼容级别为sql2012( 110).

修改兼容级别到110后, 查询就可以成功了.

 

另外,如果没有权限进入数据库属性设置页的话,也可以通过sql命令修改:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.