产生这个错误的原因是在使用convert函数将给定的日期字符串转换为日期类型的时候,因为datetime这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误。
如果类型是【datetime】数据类型:最大是9999年12 月31日,最小是1753年1月1日。
如果类型是【smalldatetime】数据类型:最大值是2079年6月6日,最小值是1900年1月1日。
更多的,如果给定的日期字符串是一个错误的日期,也会报出这个错误,比如说:
select convert(datetime, ‘2018-11-31’, 20); – 报错
看出问题来了嘛?
我遇过现场客户给出【2015-09-38】的数据,排查半天才发现这个问题,