今天开发中在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命令修改:
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 90 | 100 | 110 }