月份每28天计算一次

时间:2016-08-10 10:30:25

标签: plsql oracle11g

在甲骨文中有没有办法让我的月份在每28天后开始 例 2015年12月24日至20日 - 16日(我们提到2015年12月) 21-jan-16到17-feb-16(我们提到1月16日)

1 个答案:

答案 0 :(得分:0)

select rownum as month_number
      ,day1 + (rownum-1) * 28 as gregorian_month_start
      ,day1 + rownum * 28 - 1 as gregorian_month_end
from   (select date'2015-12-24' day1
        from dual connect by level <= 13);

1   24/DEC/2015 20/JAN/2016
2   21/JAN/2016 17/FEB/2016
3   18/FEB/2016 16/MAR/2016
4   17/MAR/2016 13/APR/2016
5   14/APR/2016 11/MAY/2016
6   12/MAY/2016 08/JUN/2016
7   09/JUN/2016 06/JUL/2016
8   07/JUL/2016 03/AUG/2016
9   04/AUG/2016 31/AUG/2016
10  01/SEP/2016 28/SEP/2016
11  29/SEP/2016 26/OCT/2016
12  27/OCT/2016 23/NOV/2016
13  24/NOV/2016 21/DEC/2016

注意:这并不适用于正常年份的第365天,也不适用于闰年的第366天。您需要指定应添加哪个月。