SELECT count(*) FROM Alert where '2012-04-30'<= firstTime
上面的语句执行没有问题
SELECT count(*) FROM Alert where '2012-04-30'<= firstTime and firstTime <= '2012-05-07'
当多加一个条件的时候 报错 无效的月份
请问这是为什么
...全文
12112打赏收藏
一个SQL比较日期的奇怪问题
SELECT count(*) FROM Alert where '2012-04-30'<= firstTime 上面的语句执行没有问题 SELECT count(*) FROM Alert where '2012-04-30'<= firstTime and firstTime <= '2012-05-07' 当多加一个条件的时候 报错 无效的月份 请问这是为什么
表达式的两边,一边是字符串,一边是时间类型,不能直接比较。如果看执行计划,你就可以看到进行了什么样的隐式转换了
隐式转换使用了如下的时间格式
select * from nls_session_parameters where parameter='NLS_DATE_FORMAT';
很明显,你用的字符串格式和它不一致