• michael.rogers (5/15/2008)


    WHERE Month(o.READING_DATE) = @StatusDateMonth and Year(o.READING_DATE) = @StatusDateYear

    Functions on a column (READING_DATE) will prevent an index from being used and as your data grows your query will become slower and slower.

    Rather do something like this

    declare @stdt datetime, @endt datetime

    select @stdt=convert(char(8), @StatusDateYear*10000+@StatusDateMonth*100+1)

    ,@endt=dateadd(mm, datediff(mm,'20000101',@stdt)+1, '20000101')

    Now you can select

    where READING_DATE>=@stdt

    and READING_DATE<@endt