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

日期型转换成字符型,截子串问题
SELECT  
R.FDateTime,
R.FValue,
T.FTargetDefCode
FROM  
TABLE_RUNTIMEDATA   R,
TABLE_TARGET   T  
WHERE  
T.FTargetCode=r.FTargetCode  
and   substr(To_char(To_Date(R.FDateTime, 'yyyy-mm-dd   hh24:mi:Ss ')),1,4)= '2007 '
and   FStatRangeCode= 'D '   and   FBizTypeCode= 'A '
ORDER   BY   R.FDateTime

报错   文字与格式字符串不匹配
如果把 'yyyy-mm-dd   hh24:mi:Ss '换成 'yyyymmdd '则报无效的月份
高手给解答一下吧

------解决方案--------------------
用 R.FDateTime > to_date( '2007-01-01 ', 'YYYY-MM-DD ') and R.FDateTime  < to_date( '2008-01-01 ', 'YYYY-MM-DD ')
可以不
------解决方案--------------------
SQL> select to_char(sysdate, 'yyyy ') from dual;

TO_CHAR(SYSDATE, 'YYYY ')
-----------------------
2007

---------------
为什么不这么取年份?