Primer día del mes anterior

Para obtener el primer día del mes anterior a través de un query debemos escribir

SELECT CONVERT(VARCHAR(10),LTRIM(RTRIM(STR(DATEPART(YYYY,DATEADD(MM,-1,GETDATE()))))) + ‘-‘ +RIGHT(REPLICATE(‘0’,1)+LTRIM(RTRIM(STR(DATEPART(MM,DATEADD(MM,-1,GETDATE()))))),2) + ‘-‘ +’01’)

o de una manera aún más sencilla

SELECT DATEADD(month, DATEDIFF(month, 0, DATEADD(month, -1,GETDATE())), 0)

Saludos


1 comment

  1. O te puedes crear una funcion en la que le pases la fecha y el codigo te quedaria mas limpio

    select dbo.PrimerDiaMesAnterior(getdate())

    funcion:
    CREATE FUNCTION dbo.PrimerDiaMesAnterior (@Fecha as datetime)
    RETURNS datetime
    AS
    BEGIN

    declare @d varchar(2),@m varchar(2),@a varchar(4), @FI varchar(50) ,@FcF varchar(50)

    –//recupera el dia ctual
    set @d=”01″
    –//recupera el mes actual
    set @m=month(@Fecha)
    –//recupera el año actual
    set @a=year(@Fecha)

    –//Primer dia del Mes
    set @FI=’01’ + ‘/’ + @m + ‘/’ + @a

    set @FcF=cast(day(@FI)as varchar) + ‘/’ + cast(month(@FI)as varchar) + ‘/’ + cast(year(@FI)as varchar)

    set @FcF= DATEADD(mm, -1, @FI)

    return @FcF

    END

Leave a Reply

Your email address will not be published.

Para evitar SPAM realiza la siguiente operación: *