oracle sql中过去13个月的前几个月的最后日期列表

时间:2018-03-20 07:20:40

标签: oracle

我需要过去13个月的前几个月的最后日期清单;喜欢 17年2月28日 17年3月31日 17年4月30日 5-31-17等等,直到 18年2月28日 我怎样才能在Oracle Sql中得到它

2 个答案:

答案 0 :(得分:0)

行生成器可能有所帮助:

SQL> alter session set nls_date_format = 'dd.mm.yyyy';

Session altered.

SQL> select last_day(trunc(add_months(sysdate, -level))) result
  2  from dual
  3  connect by level <= 13;

RESULT
---------------
28.02.2018
31.01.2018
31.12.2017
30.11.2017
31.10.2017
30.09.2017
31.08.2017
31.07.2017
30.06.2017
31.05.2017
30.04.2017
31.03.2017
28.02.2017

13 rows selected.

SQL>

[编辑:第一天:删除LAST_DAY,将结果截断为'mm'(月)]

SQL> select trunc(add_months(sysdate, -level), 'mm') result
  2  from dual
  3  connect by level <= 13;

RESULT
----------------------------------------------------------
01.02.2018
01.01.2018
01.12.2017
01.11.2017
01.10.2017
01.09.2017
01.08.2017
01.07.2017
01.06.2017
01.05.2017
01.04.2017
01.03.2017
01.02.2017

13 rows selected.

SQL>

答案 1 :(得分:0)

试试这个,

SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1*(14-ROWNUM))) last_day
  FROM dual
 CONNECT BY rownum < 14;