从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
当运行条件加上where   Convert(DateTime,Convert(varchar(10),Convert(varchar(4),Year(GetDate()))   +    '- '   +SubString(BirthDay   ,   1,   2)    
 +    '- '   +SubString(BirthDay   ,   3,   2)))   Between    '2007-08-27   00:00:00 '   And    '2007-08-27   23:59:59 '时出现该错误,而我BirthDay   字段的数据形式为:06-21 
 不改变语句,应该是区域设置与排序规则的问题。请教各位大虾的帮助。 
 谢谢 
------解决方案----------------------不需要那么多convert,convert来convert去把人都convert晕了:   
 where datename(year, getdate()) +  '- ' + Birthday Between  '2007-08-27 00:00:00 ' And  '2007-08-27 23:59:59 ' 
------解决方案--------------------BirthDay  字段数据有问题,不是有效的时间,可能是空字符串什么的
------解决方案--------------------越界,说明你BirthDay字段数据有问题。 
 检查保存代码
------解决方案--------------------有datename函数就不要用convert拉,看的晕~~
------解决方案--------------------where Convert(DateTime,Convert(varchar(10),Convert(varchar(4),Year(GetDate())) +  '- ' +SubString(BirthDay , 1, 2)  
 +  '- ' +SubString(BirthDay , 4, 2))) Between  '2007-08-27 00:00:00 ' And  '2007-08-27 23:59:59 ' 
 ------------ 
 而我BirthDay 字段的数据形式为:06-21--要从这个字段取日期,应该是从第四个取啊