日期:2014-05-17  浏览次数:20717 次

迷惑,很简单的问题就是不知道为什么出错!
select   *   from   view55ch122;
执行后结果:
GLKCO                 GROSS_SO   REBATE_CHINA   GROSS_SOYTO   REBATE_CHINAYTO   YEARMONTH
----------   ----------   ------------   -----------   ---------------   ------------
00005                                         -12206.56                                       -12206.56   200701
00005                                       -1022.6749                                       -25432.95   200612
00005                                       -24410.275                                     -24410.275   200611
但我用下面的语句:
select   *   from   view55ch122   where   substr(   view55ch122.YEARMONTH,1,4)= '2006 ';
系统提示:
第   1   行出现错误:
ORA-01848:   day   of   year   must   be   between   1   and   365   (366   for   leap   year)
字段YEARMONTH是VARCHAE2(6),为什么??

------解决方案--------------------
字段YEARMONTH是VARCHAE2(6),为什么??

这个试图应该是你们自己创建的
什么类型应该很清楚了
------解决方案--------------------
你用 YEARMONTH like '2006% ' 看看。
------解决方案--------------------
YEARMONTH应该不是VARCHAR2吧
------解决方案--------------------
你desc看看YEARMONTH究竟是什么类型。

如果是date型:
select * from view55ch122 where substr(to_char(view55ch122.YEARMONTH, 'yyyymm '),1,4)= '2006 ';