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
SELECT TRUNC (TO_DATE(’15/09/2014′))+rownum-1 AS dias_del_mes
FROM DUAL
CONNECT BY LEVEL <= TRUNC (TO_DATE('25/10/2014'))-TRUNC (TO_DATE('15/09/2014'))
con rango de fechas
Excelente query. Como podría aplicarla si lo que necesito es los dias entre un rango de fecha que no coincide con el mes calendario?
Muchisimas gracias
Encontre la solución. Gracias
Muy bueno…. ahora de casualidad no sabes como imprimir esas fechas pero en forma de columnas???