none
WHERE COM IF RRS feed

  • Pergunta

  • Bom dia pessoal!

    Preciso de um help para fazer um script de consulta rodar.

    Quero resgatar, numa função "fpc.competencia" (formato 2017-01-01), sempre o mês anterior.

    Hoje utilizo:

     AND FPC.COMPETENCIA = DATEADD(YEAR,-1,GETDATE())
     AND FPC.COMPETENCIA = DATEADD(MONTH,-1,GETDATE())
     AND DAY(FPC.COMPETENCIA) = 1

    Só que agora, como chegamos em 2017, deu BO, não tinha pensado que ocorreria na mudança de ano.

    O que eu posso colocar para que ela sempre pegue o mês anterior, considerando a data 2016-12-01 quando o ano for 2017 e o mês 01?

    Tem solução?

    Obrigado e um abraço,

    Robson.


    Robson Giovanni Parisoto.

    terça-feira, 10 de janeiro de 2017 12:08

Respostas

  • Olá,

    Tente usar essa expressão:

    DATEADD(MONTH, -1, DATEADD(DAY, -DAY(CAST(GETDATE() AS DATE))+1, CAST(GETDATE() AS DATE)))

    Aplicando no seu caso ficaria:

    AND FPC.COMPETENCIA = DATEADD(MONTH, -1, DATEADD(DAY, -DAY(CAST(GETDATE() AS DATE))+1, CAST(GETDATE() AS DATE)))
    Apenas isso.

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco



    terça-feira, 10 de janeiro de 2017 12:24

Todas as Respostas