当前位置: 代码迷 >> Oracle管理 >> 求解两条sql语句的不同解决方案
  详细解决方案

求解两条sql语句的不同解决方案

热度:158   发布时间:2016-04-24 04:14:51.0
求解两条sql语句的不同
select * from C$_0ZJK_MINZJ_STFQYDJ_1406 where  toxdate(clrq,0) >= to_date('1987-01-01','YYYY-MM-DD') and toxdate(clrq,0)<= to_date('2014-08-31','YYYY-MM-DD')

select * from C$_0ZJK_MINZJ_STFQYDJ_1406 where clrq between to_date('1987-01-01','yyyy-mm-dd')and to_date('2014-08-31','yyyy-mm-dd')
求解这两条语句执行的结果不一样的原因。
------解决方案--------------------
引用:
Quote: 引用:

 toxdate(clrq,0) 这个函数
参数1 字符串 日期格式的字符串 满足掩码 DD-MON-YY或YYYY-MM-DD
参数2 整形    标识传入的参数1使用的那种掩码 0对应DD-MON-YY,1或负数对应YYYY-MM-DD

那如果我的最初的那两个语句查询的结果不一样,应该是我的clrq这一列的日期格式的问题了?第一句sql只可以查出2000年及以后的数据,第二句则可以查出所有的数据

DD-MON-YY 这个掩码的问题,因为掩码中的年份采用的是YY的掩码,只有年份的最后两位数字,年份有时返回是错误的
  相关解决方案