› Fóruns › SQL e PL/SQL › [DÚVIDA SELECT] › [DÚVIDA SELECT]
[quote=”diegomello”:1thcxgn9]Opa, tudo certo?
Vê se te ajuda…
SQL> SELECT dia_mes
2 ,CASE
3 WHEN TO_CHAR(dia_mes, 'd') BETWEEN 2 AND 6 THEN
4 TO_CHAR(dia_mes + 12 / 24, 'dd/mm/rrrr hh24:mi')
5 ELSE
6 TO_CHAR(dia_mes, 'Day', 'NLS_DATE_LANGUAGE=PORTUGUESE')
7 END entrada
8 ,CASE
9 WHEN TO_CHAR(dia_mes, 'd') BETWEEN 2 AND 6 THEN
10 dia_mes + 13 / 24
11 END saida
12 FROM (SELECT data + LEVEL - 1 dia_mes
13 FROM (SELECT TRUNC(SYSDATE, 'mm') data
14 FROM dual)
15 CONNECT BY data + LEVEL - 1 <= LAST_DAY(TRUNC(SYSDATE)));
DIA_MES ENTRADA SAIDA
1/7/2010 01/07/2010 12:00 1/7/2010 13:00
2/7/2010 02/07/2010 12:00 2/7/2010 13:00
3/7/2010 Sábado
4/7/2010 Domingo
5/7/2010 05/07/2010 12:00 5/7/2010 13:00
6/7/2010 06/07/2010 12:00 6/7/2010 13:00
7/7/2010 07/07/2010 12:00 7/7/2010 13:00
8/7/2010 08/07/2010 12:00 8/7/2010 13:00
9/7/2010 09/07/2010 12:00 9/7/2010 13:00
10/7/2010 Sábado
11/7/2010 Domingo
12/7/2010 12/07/2010 12:00 12/7/2010 13:00
13/7/2010 13/07/2010 12:00 13/7/2010 13:00
14/7/2010 14/07/2010 12:00 14/7/2010 13:00
15/7/2010 15/07/2010 12:00 15/7/2010 13:00
16/7/2010 16/07/2010 12:00 16/7/2010 13:00
17/7/2010 Sábado
18/7/2010 Domingo
19/7/2010 19/07/2010 12:00 19/7/2010 13:00
20/7/2010 20/07/2010 12:00 20/7/2010 13:00
21/7/2010 21/07/2010 12:00 21/7/2010 13:00
22/7/2010 22/07/2010 12:00 22/7/2010 13:00
23/7/2010 23/07/2010 12:00 23/7/2010 13:00
24/7/2010 Sábado
25/7/2010 Domingo
26/7/2010 26/07/2010 12:00 26/7/2010 13:00
27/7/2010 27/07/2010 12:00 27/7/2010 13:00
28/7/2010 28/07/2010 12:00 28/7/2010 13:00
29/7/2010 29/07/2010 12:00 29/7/2010 13:00
30/7/2010 30/07/2010 12:00 30/7/2010 13:00
31/7/2010 Sábado
31 rows selected
[/quote]
Po diego, é isso mesmo que preciso…mas preciso sempre gerar com o mês seguinte…nesse caso tenho que gerar o mês de Agosto.