Pular para o conteúdo
Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #86537
    VINI85
    Participante

      Bom dia a todos, preciso fazer um Select onde pegue a data de admissão com a data de hoje e traga a diferença.

      EX: data de admissão 01/03/2008
      data de hoje 30/04/2009

      Apresentação : 1 ano e 2 meses.

      Abraços.

      #86538
      Marcio68Almeida
      Participante

        select TRUNC ((to_date ('21/05/2009') - to_date ('21/01/2008')) / 365) ano, TRUNC (MOD ((to_date ('19/05/2009') - to_date ('21/01/2008')), 365) / 30) mes
        from dual

        Veja se isto serve…

        #86539
        VINI85
        Participante

          [quote=”Marcio68Almeida”:1fbcfifz]select TRUNC ((to_date ('21/05/2009') - to_date ('21/01/2008')) / 365) ano, TRUNC (MOD ((to_date ('19/05/2009') - to_date ('21/01/2008')), 365) / 30) mes
          from dual

          Veja se isto serve…[/quote]

          NÃO RODOU!!!

          #86540
          Ishii
          Participante

            Olá,

            Tente o months_between, mas será necessário uma função para a resposta sair neste formato…


            select months_between (data_demissao, data_admissao) from dual

            Isso traz o resultado em meses, para passar para o formato de X anos e Y meses só com uma função…

            []s Ishii

            #86541
            Avatar photoRegis Araujo
            Participante

              Fala Vini, bom dia!

              Não rolou o que o Marcio passou? Estranho.. Como que vc rodou este select? Alterou os valores de DATA pelo seu campo?

              Posta aqui o seu select…

              Abraços…

              #86542
              Marcio68Almeida
              Participante

                [quote=”VINI85″:2dn191sz]NÃO RODOU!!![/quote]

                Que erro deu ???
                Aqui rodou direitinho…
                é claro que é estimativa, não é 100% preciso…

                #86543
                Ishii
                Participante

                  Olá

                  Ou se puder ser em duas colunas


                  select trunc(months_between(data_demissao, data_admissao)/12) anos ,mod(months_between(data_demissao, data_admissao),12) meses from dual

                  []s Ishii

                  #86544
                  VINI85
                  Participante

                    [quote=”Thunder_Catz”:2qzi91x8]Fala Vini, bom dia!

                    Não rolou o que o Marcio passou? Estranho.. Como que vc rodou este select? Alterou os valores de DATA pelo seu campo?

                    Posta aqui o seu select…

                    Abraços…[/quote]

                    Então eu fiz desta forma:

                    select TRUNC ((to_date (‘SYSDATE’) – to_date (‘PFUNC.DATAADMISSAO’)) / 365) ano, TRUNC (MOD ((to_date (‘SYSDATE’) – to_date (‘PFUNC.DATAADMISSAO’)), 365) / 30) mes
                    from PFUNC

                    #86545
                    Marcio68Almeida
                    Participante

                      [quote=”VINI85″:j29cy2kh]Então eu fiz desta forma:

                      select TRUNC ((to_date (‘SYSDATE’) – to_date (‘PFUNC.DATAADMISSAO’)) / 365) ano, TRUNC (MOD ((to_date (‘SYSDATE’) – to_date (‘PFUNC.DATAADMISSAO’)), 365) / 30) mes
                      from PFUNC[/quote]
                      A coluna dataadmissao é data ?
                      Se for data não pode utilizar o conversor TO_DATE…
                      Qual o erro que está aparecendo para você ???

                      #86546
                      VINI85
                      Participante

                        [quote=”Ishii”:170j9lu0]Olá

                        Ou se puder ser em duas colunas


                        select trunc(months_between(data_demissao, data_admissao)/12) anos ,mod(months_between(data_demissao, data_admissao),12) meses from dual

                        []s Ishii[/quote]

                        GALERA CONSEGUI, VALEU…

                        O CÓDIGO FICOU ASSIM

                        select trunc(months_between(SYSDATE, PFUNC.DATAADMISSAO)/12) anos
                        ,TRUNC(mod(months_between(SYSDATE, PFUNC.DATAADMISSAO),12)) meses

                        from PFUNC

                        OBRIGADO A TODOS….

                        #86553
                        abonacin
                        Participante

                          Não deve ter rodado por falta da máscara na data…
                          tenta substituir por to_date (’21/05/2009′,’dd/mm/rrrr’)

                        Visualizando 11 posts - 1 até 11 (de 11 do total)
                        • Você deve fazer login para responder a este tópico.