Дни прошлого месяца inPL / SQL - PullRequest
1 голос
/ 28 июня 2010

Как я могу получить все дни предыдущего месяца в PL / SQL?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 28 июня 2010
SELECT  LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + level
FROM    dual
CONNECT BY
        level <= LAST_DAY(ADD_MONTHS(SYSDATE, -1)) - LAST_DAY(ADD_MONTHS(SYSDATE, -2))
1 голос
/ 28 июня 2010

Как это?

begin
for i in 1..to_char(trunc(sysdate,'mm')-1,'dd') loop
    dbms_output.put_line(i);
end loop;
end;
/

Или, если вы хотите дату:

begin
for i in 1..to_char(trunc(sysdate,'mm')-1,'dd') loop
    dbms_output.put_line(i+trunc(trunc(sysdate,'mm')-1,'mm')-1);
end loop;
end;
/
0 голосов
/ 28 июня 2010

Попробуйте это

WITH d AS
(
SELECT TRUNC ( sysdate, 'MM' ) - 1 AS dt
FROM dual
)
SELECT dt + LEVEL
FROM d
CONNECT BY LEVEL <= ADD_MONTHS (dt, 1) - dt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...