目前正在使用SQL Server 2008.为了调试正在处理的一些错误日期数据,下面的代码是用坏数据的示例编写的。
SELECT ISDATE('10-22-002')
SELECT YEAR('10-22-002')
在数据库A上运行语句,结果是:' 1'和' 2002'。
在数据库B上运行语句,结果是:' 1'和一个错误。
在运行语句之前,所有会话的日期格式都是MDY。
Msg 241,Level 16,State 1 从字符串转换datetime时转换失败。
我能找到的所有内容都表明日期格式设置为服务器或会话级别。数据库级别是否有设置?
答案 0 :(得分:0)
您需要将'10-22-002'
转换为datetime
。
SELECT YEAR(cast('10-22-002' as datetime))