I am guessing (haven't tested) something like this might work: declare @monthstart datetimedeclare @monthend datetimeSET @monthstart=DATEADD (mm, (-1) * @month, @dte)SET @monthstart=CONVERT(datetime, CAST(YEAR(@monthstart) as varchar)+RIGHT('0'+CAST(MONTH(@monthstart) as varchar), 2) + '01', 112)SET @monthend = DATEADD (s, -1, DATEADD(mm, 1, @monthstart))SELECT ...WHERE ISNULL (SH.PERIOD_START_DATE,AH.PERIOD_START_DATE) <= @monthend AND ISNULL (SH.PERIOD_END_DATE,AH.PERIOD_END_DATE) >= @monthstart