Sou iniciante em programação e estou com uma dúvida:
Tenho um retorno de uma data em meses, por exemplo, 27 meses.
Preciso transformar em anos e meses, como faço?
Configurar data
-
- Moderador
- Mensagens: 367
- Registrado em: Ter, 25 Mar 2008 3:41 pm
- Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer
Campanha: Faça uma pesquisa antes de perguntar!!!
Analista de Sistemas
Oracle Developer
Campanha: Faça uma pesquisa antes de perguntar!!!
Você pode tratar isso em uma função que checa qtd de meses, faz os calculos e retorna os anos e o resto continua em messes.
ai vai um exemplo bobo.
ai vai um exemplo bobo.
DECLARE
N NUMBER := 27;
ANOS NUMBER := 0;
MESES NUMBER := 0;
BEGIN
LOOP
IF N >= 12 THEN
ANOS := ANOS + 1;
N := N - 12;
ELSIF N <= 11 THEN
MESES := N;
N := 0;
END IF;
EXIT WHEN N = 0;
END LOOP;
DBMS_OUTPUT.PUT_LINE('ANOS '||ANOS);
DBMS_OUTPUT.PUT_LINE('MESES '||MESES);
END;
- dr_gori
- Moderador
- Mensagens: 5018
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Pode fazer mais simples, usando TRUNC e MOD.
Veja:
Saída:
Veja:
select
qtdmeses
, trunc(qtdmeses/ 12) anos
, mod (qtdmeses, 12) meses
from ( select rownum qtdmeses from all_tables where rownum < 40 )
SQL> select
2 qtdmeses
3 , trunc(qtdmeses/ 12) anos
4 , mod (qtdmeses, 12) meses
5 from ( select rownum qtdmeses from all_tables where rownum < 40 )
6 /
QTDMESES ANOS MESES
---------- ---------- ----------
1 0 1
2 0 2
3 0 3
4 0 4
5 0 5
6 0 6
7 0 7
8 0 8
9 0 9
10 0 10
11 0 11
12 1 0
13 1 1
14 1 2
15 1 3
16 1 4
17 1 5
18 1 6
19 1 7
20 1 8
21 1 9
22 1 10
23 1 11
24 2 0
25 2 1
26 2 2
27 2 3
28 2 4
29 2 5
30 2 6
31 2 7
32 2 8
33 2 9
34 2 10
35 2 11
36 3 0
37 3 1
38 3 2
39 3 3
39 rows selected.
SQL>
Muito obrigada a todos pela ajuda.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes