首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界解决思路

2012-03-30 
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界当运行条件加上whereConvert(DateTime,C

从 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--要从这个字段取日期,应该是从第四个取啊

热点排行
Bad Request.