• Another opinion.

    declare @CurrentDate datetime = dateadd(month,1,getdate()); -- Say current date is a month from now. In the declares below you could use GETDATE() instead.

    declare @StartDate datetime = dateadd(month,datediff(month,0,@CurrentDate) - 1, 0),

    @EndDate datetime = dateadd(month,datediff(month,0,@CurrentDate), 0);

    select @CurrentDate, @StartDate, @EndDate;

    -- Your query would look something like this:

    select

    -- your columns --

    from

    dbo.YourTable

    where

    YourDateColumn >= @StartDate and

    YourDateColumn < @EndDate;