• Try this

    CREATE procedure proc1

    @orderstatus VARCHAR(15),

    @orderdate DATETIME,

    @createdate DATETIME

    AS

    IF @OrderDate is NULL and @Createdate is NULL

    Begin

    Select * from table1

    where ordercreatedt >= DATEADD(Day, DATEDIFF(Day, 0, GetDate()-1), 0) AND

    ordercreatedt < DATEADD(Day, DATEDIFF(Day, 0, GetDate()), 0)

    and @orderstatus = case when @orderstatus = 'ALL' then 'ALL' Else orderstatus End

    END

    ELSE

    BEGIN

    Select * from table1

    where @orderstatus = case when @orderstatus = 'ALL' then 'ALL' Else orderstatus End

    and isnull(@orderdate,'') = case when isnull(@orderdate,'') = '' then '' else orderdate end

    and isnull(@createdate,'') = case when isnull(@createdate,'') = '' then '' else convert(varchar(10),ordercreatedt,101) end

    END