java oracle 查询一个月有多少天

查询月的天数

java

      Calendar c= Calendar.getInstance(); 
      c.set(Calendar.YEAR, nYear); 
      c.set(Calendar.MONTH, nMonth -1); 
      //这个时候由于2月没有30日,而今天是30日,所以c已经自动跳转到了3月了,所以你要在之前调用一次c.set(Calendar.DATE, 1);才可以保证不出现这个问题
      c.set(Calendar.DATE, 1);
      return c.getActualMaximum(Calendar.DAY_OF_MONTH); 


  1.         // 获取当月第一天和最后一天  
  2.         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  3.         String firstday, lastday;  
  4.         // 获取前月的第一天  
  5.         cale = Calendar.getInstance();  
  6.         cale.add(Calendar.MONTH, 0);  
  7.         cale.set(Calendar.DAY_OF_MONTH, 1);  
  8.         firstday = format.format(cale.getTime());  
  9.         // 获取前月的最后一天  
  10.         cale = Calendar.getInstance();  
  11.         cale.add(Calendar.MONTH, 1);  
  12.         cale.set(Calendar.DAY_OF_MONTH, 0);  
  13.         lastday = format.format(cale.getTime());  
  14.         System.out.println("本月第一天和最后一天分别是 : " + firstday + " and " + lastday);  


oracle

本月:

    SELECT FDATE
      FROM (SELECT TRUNC(SYSDATE, 'MONTH') + LEVEL - 1 AS FDATE,LEVEL
              FROM DUAL
            CONNECT BY LEVEL <= 31) T
     WHERE TO_CHAR(FDATE, 'MM') = TO_CHAR(SYSDATE, 'MM');

时间段:

SELECT TO_CHAR(TO_DATE('2014-10-01', 'yyyy-MM-dd') + LEVEL - 1, 'yyyyMMdd') as daylist
  FROM DUAL
CONNECT BY LEVEL <=
           trunc(to_date('2015-06-01', 'yyyy-MM-dd') -
                 to_date('2014-10-01', 'yyyy-MM-dd')) + 1   


查询年的月份


本年:

SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YEAR'), LEVEL - 1) AS MONTHLIST
  FROM DUAL
CONNECT BY LEVEL <= 12


时间段:

SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2014-10', 'yyyy-MM'), ROWNUM - 1),
               'yyyyMM') as monthlist
  FROM DUAL
CONNECT BY LEVEL <=
           months_between(to_date('2015-06', 'yyyy-MM'),
                          to_date('2014-10', 'yyyy-MM')) + 1



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值