首先,在数据库中尽量不要把时间存成 varchar 类型,如果前台展现的时候再把date转换成字符串,这样运算起来不方便。第二,针对你这种情况,可以现把他转化成日期后在处理select *from t1 where to_date(sting_date,'date_formate') > to_date('xxx','date_format');这样的效率不是很高,因为每一条记录都要进行一次转换

解决方案 »

  1.   

    沈阳,我没用过oracle,以前用sql server的。至于把他们设置为字符型,也不是我的本意。。
    还有,取出date型中的年。。用什么函数?
      

  2.   

    用trunc函数,SELECT TRUNC(TO_DATE(2004-05-07,'yyyy-mm-dd'), 'YEAR')
      "New Year" FROM DUAL;
     
    New Year
    ---------
    2004-01-01如果你想取得“2004”的话,需要将日期转成字符串(yyyy-mm-dd格式),然后取前4位就可以了
      

  3.   

    我就是不知道分解字符串的函数,,谁能告诉我Oracle关于这方面的文档,在哪儿能找到?
      

  4.   

    用to_date,to_char转换日期类型:
    select to_date('20040606','yyyymmdd') from dual;
    select to_char(sysdate,'yyyy-mm-dd') from dualoracle语法,函数等使用,在网上有很多的文章或电子书,自己搜一下,论坛里面也有好多.