select * from wz_order_tbl where 1=1
and to_char(exp_date,'yyyy-mm') = '2014-08' 

解决方案 »

  1.   

    他字段数据是字符串类型的,这么写不可以楼主你字段中字符串的格式是怎样的
    你语句中的to_date(exp_date,'yyyy-mm')掩码要和你数据中的格式相对应才可以
      

  2.   

    他字段数据是字符串类型的,这么写不可以楼主你字段中字符串的格式是怎样的
    你语句中的to_date(exp_date,'yyyy-mm')掩码要和你数据中的格式相对应才可以格式没问题,但是就是没问题:2014-09-05基本上都是这种形式的。
    我们的设计是这样的一个字段放年月日,另外一个字段放时分秒。我现在需要用这个存放年月日的字段和时间进行比较。
      

  3.   

    2014-09-05 这种格式的掩码是yyyy-mm-dd
    select * from wz_order_tbl where 1=1
    and trunc(to_date(exp_date,'yyyy-mm-dd'),'month') = to_date('2014-08','yyyy-mm') 
    也可以这样
    select * from wz_order_tbl where 1=1
    and to_char(to_date(exp_date,'yyyy-mm-dd'),'yyyy-mm') = '2014-08'
      

  4.   

    转换中的日期格式须按照数据的真实格式,即‘2014-09-05’ 对应 'yyyy-mm-dd',否则会出现格式不正确的错误。
    接着,在进行截取到月份的操作。
      

  5.   

    用varchar比较,先转为date再转为varchar
    to_char(to_date(exp_date,'yyyy-mm-dd'),'yyyy-mm') = '2014-08'