从日期中减去 18 个月,我遇到了一个奇怪的问题。考虑以下代码段:
Convert(dateTime,CREATION_DATE,103) >
DateAdd (MONTH, -18, Convert (DateTime, @IN_ACTIVITY_DATE, 103))
这构成了存储过程中 where 子句的一部分。当我运行时:
exec theSP @IN_ACTIVITY_DATE = '21/02/2013'
它运行良好,但是当我将其更改为:
exec theSP @IN_ACTIVITY_DATE = '21/01/2013'
它因错误而中断:
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
有没有人对为什么可能是一月(所有其他月份都可以)破坏我的代码有任何想法?
谢谢。
DS