guigushen
guigushen
2011-03-15 13:04

Oracle 取当月数据

已采纳

select * from 表名 where 字符型日期字段 >= to_char(trunc(to_date('20100630','YYYY-MM-DD'),'mm'),'YYYYMMDD')
and 字符型日期字段 <= to_char(last_day(to_date('20010630','YYYY-MM-DD')),'YYYYMMDD')

取给定日期20010630 当月的数据,
分拆后 第一个条件好使,第二个条件不好使,但第二个条件换成大于号后也好使,
条件单独拿出查询是一个结果集。
求各们大大帮忙,小弟在此谢过

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • iteye_17702 iteye_17702 10年前

    [quote]
    select * from 表名 where 字符型日期字段 >= to_char(trunc(to_date('20100630','YYYY-MM-DD'),'mm'),'YYYYMMDD')
    and 字符型日期字段 <= to_char(last_day(to_date('20010630','YYYY-MM-DD')),'YYYYMMDD')
    [/quote]

    你这里日期好像写错了啊: >=[color=red]2010[/color]0630同时<=[color=red]2001[/color]0630, 没有日期在[20100630,20010630]这个区间

    点赞 评论 复制链接分享
  • xing23777 xing23777 10年前

    [code="sql"]select * from 表名

    where to_date(字符型日期字段,'YYYY-MM-DD') >= trunc(to_date('20100630','YYYY-MM-DD'),'mm') and to_date(字符型日期字段,'YYYY-MM-DD')<= last_day(to_date('20010630','YYYY-MM-DD')) [/code]

    你试试……

    点赞 评论 复制链接分享
  • xing23777 xing23777 10年前

    取当月的数据格式:
    [code="sql"]select * from table t
    where t.create_time >=TRUNC(SYSDATE, 'MM')
    and t.create_time<=last_day(SYSDATE)[/code]
    你可以把“字符型日期字段”转换成日期形式比较。

    点赞 评论 复制链接分享

相关推荐