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