Qual o mês do período que tem mais dias?

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
arthae
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Seg, 09 Mai 2011 1:13 pm
Localização: Porto Alegre - RS
GIVE ME COFFEE AND NO ONE GETS HURT!

Pessoal, estou com o seguinte caso:
Tenho que fazer o sistema descobrir qual o 'mês' do período... por exemplo
Período de 30/03 até 28/04 = mês de abril
Exemplo 2: 05/03 até 01/04 = mês de março
exemplo 3: 15/03 até 15/04 = mês de abril

Eu não sei nem por onde começar, alguém com alguma ideia?
Valeu!
arthae
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Seg, 09 Mai 2011 1:13 pm
Localização: Porto Alegre - RS
GIVE ME COFFEE AND NO ONE GETS HURT!

no ultimo exemplo eu coloquei errado, como o mês de março tem 31 dias.
o exemplo 3 é pra ficar assim:
15/03 até 16/04 = mês de abril...
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Não entendi o que define se o período é de um mês ou é de outro? É o que possui mais dias? É o Último/Primeiro?Quantidade de dias???O que exatamente?
arthae
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Seg, 09 Mai 2011 1:13 pm
Localização: Porto Alegre - RS
GIVE ME COFFEE AND NO ONE GETS HURT!

Noctifero escreveu:Não entendi o que define se o período é de um mês ou é de outro? É o que possui mais dias? É o Último/Primeiro?Quantidade de dias???O que exatamente?
O periodo é composto por data final e data inicial... no caso, tenho que fazer o sistema entender que o mês que tiver mais dias dentro do período é o mês no qual o periodo é relacionado.
Exemplo: 30/03 até o 28/04. o mês é de abril pois o período abrange 28 dias de abril e somente 2 dias de março

No caso dos dois meses tiverem o mesmo numero de dias eu pego sempre o ultimo mês

sacou?
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

E quando a quantidade de dias de 2 meses forem iguais, pega o primeiro ou segundo? Existe possibilidade de ter mais de 2 meses no periodo?
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Considerando não existir mais do que 2 meses o período consultado:

Selecionar tudo

SELECT CASE
         WHEN (last_day(to_date(&data_ini, 'dd/mm/rrrr')) - to_date(&data_ini, 'dd/mm/rrrr') >
              to_date(&data_fim, 'dd/mm/rrrr') - trunc(to_date(&data_fim, 'dd/mm/rrrr'), 'MM')) THEN
          to_char(to_date(&data_ini, 'dd/mm/rrrr'), 'MONTH')
         ELSE
          to_char(to_date(&data_fim, 'dd/mm/rrrr'), 'MONTH')
       END periodo
      ,&data_ini
      ,&data_fim
  FROM dual;
arthae
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Seg, 09 Mai 2011 1:13 pm
Localização: Porto Alegre - RS
GIVE ME COFFEE AND NO ONE GETS HURT!

Noctifero, é exatamente isso que eu precisava.
Valeu mesmo, não sabia nem por onde começar mas agora vendo, até já melhorei minha logica para datas.
Obrigado mesmo!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes