Oracle查询月初和月底时间


什么时候需要用到这2个时间,先简单说下:

假如你3月15日订购的包月产品,月底出帐,那么应该收取17天的费用,这个时候就应该判断订购时间是否大于月初时间。
如果你只用到了3月25号,那么应该收取11天,这个时候你就需要判断使用时间是否小于月底时间。而订购时间和使用时间是一般是存在于产品表的。包月的定价计划存在于定价表里,所以说批出用户的费用是需要用到月底,月初时间。

//查找本月月初
Select  TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM') ||
                              '-01 00:00:01',
                              'YYYY-MM-DD HH24:MI:SS')
          Into MONTH_BEGIN_TIME
          From DUAL;

//查找本月月末        
Select TO_DATE(TO_CHAR(LAST_DAY(SYSDATE),
       'YYYY-MM-DD') || ' 23:59:59',
       'YYYY-MM-DD HH24:MI:SS')
  Into MONTH_END_TIME
  From DUAL;

//查找上月月初
Select  TO_DATE(TO_CHAR(ADD_MONTHS(SYSDATE,-1), 'YYYY-MM') ||
                              '-01 00:00:01',
                              'YYYY-MM-DD HH24:MI:SS')
          Into LAST_MONTH_BEGIN_TIME
          From DUAL;

//查找上月月末
Select TO_DATE(TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE,-1)),
                             'YYYY-MM-DD') || ' 23:59:59',
                             'YYYY-MM-DD HH24:MI:SS')
          Into LAST_MONTH_END_TIME
          From DUAL;

更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12

相关内容