Query SQL que devuelve todos los días de un determinado mes
SELECT TRUNC (SYSDATE, 'MON')+rownum-1 AS dias_del_mes FROM DUAL WHERE to_char(SYSDATE,'MON')=to_char(TRUNC (SYSDATE, 'MON')+rownum-1,'MON') CONNECT BY LEVEL <= 31 |
Lo que nos devolverá :
dias_del_mes
———–
01-MAR-2012
02-MAR-2012
………..
………..
………..
30-MAR-2012
Si queremos reemplezar SYSDATE por otra fecha, la query quedaría de la siguiente manera:
SELECT TO_DATE ('01-' || '&Month' || '-' || '&year', 'DD-MON-YYYY')+ LEVEL- 1 FROM DUAL CONNECT BY LEVEL <= 31 AND TO_CHAR ( TO_DATE ('01-' || '&Month' || '-' || '&year','DD-MON-YYYY')+ LEVEL- 1,'MON') = '&Month' |
Excelente, buena info, porque puede que utilice esta sentencia prontamente..
SELECT TO_DATE(’13/10/1982′)+rownum-1 AS dias_del_mes
FROM DUAL
CONNECT BY LEVEL <= (SELECT TRUNC(TO_DATE('13/11/1982')-TO_DATE('13/10/1982')) FROM DUAL)
enumera desde la fecha inicio hasta la fecha final
DIAS_DEL_MES
13/10/1982
14/10/1982
15/10/1982
16/10/1982
17/10/1982
18/10/1982
19/10/1982
20/10/1982
21/10/1982
22/10/1982
23/10/1982
24/10/1982
25/10/1982
26/10/1982
27/10/1982
28/10/1982
29/10/1982
30/10/1982
31/10/1982
01/11/1982
02/11/1982
03/11/1982
04/11/1982
05/11/1982
06/11/1982
07/11/1982
08/11/1982
09/11/1982
10/11/1982
11/11/1982
12/11/1982