quinta-feira, 20 de agosto de 2009

Miudezas Parte 1: Último dia do mês.

--Último dia do mês anterior
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))

--Último dia do mês atual
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))

--Último dia do próximo mês
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+2,0))

3 comentários:

  1. Ola Fausto,

    Como faco pra saber o primeiro dia do mes anterior utilizando estas funcoes?

    Obrigado

    Ricardo

    ResponderExcluir
  2. Sou Júnior Plácido, e tenho uma maneira mais prática e fácil.

    DECLARE @DATA DATE
    DECLARE @ULTIMODIA DATE

    SET @DATA = '31/01/2013'

    SET @ULTIMODIA = DATEADD(D,-DAY(@DATA),DATEADD(M,1, @DATA))

    SELECT DATEPART(DAY,@ULTIMODIA)


    Primeiro ele adiciona +1 ao mês, levando um mês a frente, logo depois ele diminui os dias, pegando assim o último dia do mês anterior que é o atual neste caso

    ResponderExcluir
  3. Pena qe não funciona corretamente junior, quando chega em fevereiro buga janeiro, e os meses com 31 dias terminam com 30

    ResponderExcluir