My friend asked me to write a single SQL query which will return first day and last day of the month starting from today’s date till next 100 months.
Requirement:
1-May-2013 31-May-2013
1-Jun-2013 30-Jun-2013
1-Jul-2013 31-Jul-2013
-------- ---------
-------- ---------
100th Record 100th Record
Solution:
SELECT LEVEL,
TO_CHAR (TRUNC (ADD_MONTHS (SYSDATE, LEVEL - 1), 'MM'),
'DD-MON-RRRR'
),
TO_CHAR (LAST_DAY (ADD_MONTHS (SYSDATE, LEVEL - 1)), 'DD-MON-RRRR')
FROM DUAL
CONNECT BY LEVEL <= 100;
We can get Last Day of month using LAST_DAY (SYSDATE) and First Day using TRUNC (SYSDATE, 'MM'). To repeat 100 times we can use CONNECT BY LEVEL
Result:
ReplyDeleteRegards
Sridevi Koduru (Senior Oracle Apps Trainer Oracleappstechnical.com)
Please Contact for One to One Online Training on Oracle Apps Technical, Financials, SCM, SQL, PL/SQL, D2K at sridevikoduru@oracleappstechnical.com | +91 - 9581017828.