bug记录,写sql的时候用到了convert将varchar转换为datetime类型,使用convert(datetime,字段),最后报错“从varchar数据类型到datetime数据类型的转换产生一个超出该范围的值”
经排查,where后面的条件查询出来并无任何数据,一条数据都没有,但是他就是报这个错,
具体他为啥一条数据都没有还进行了convert转换,这个不得而知,网上也没搜到具体的资料来解释。
解决办法,在where后面再加一个条件, isdate(字段) =1 ,这个条件采用isdate函数,就是判断这个字段的值是否可以被转换成datetime类型,1表示可以,0表示不行,加上条件过后问题解决。
仅做问题记录,仅供参考
本文记录了在SQL中尝试将VARCHAR字段转换为DATETIME遇到的超出范围错误,通过发现查询结果为空但依然引发转换,解决办法是加入IsDate函数检查字段是否能被转换。
从varchar数据类型到datetime数据类型的转换产生一个超出该范围的值&spm=1001.2101.3001.5002&articleId=119760391&d=1&t=3&u=000dd00c363d4ec4b8c6686cfcee0184)
1万+

被折叠的 条评论
为什么被折叠?



