Iterative SQL Delete Statement
Depending on the amount of data being deleted, and if you are in the full or bulk-logged recovery model. Then you might want to look into adjusting the TOP N value and/or increasing your t-log backup frequency.

DECLARE @MinDate    DATETIME = DATEADD(DAY,-60, GETDATE())
        ,@Maxdate   DATETIME = DATEADD(DAY,-30, GETDATE())
        ,@RowCount  INT = 1

WHILE   @RowCount &gt; 0

BEGIN 

        DELETE  TOP (20000)
                tn
        FROM    table_name tn
        WHERE   order_date &gt;= @MinDate
        AND     order_date &lt;= @Maxdate

        SET @RowCount = @@ROWCOUNT   

    RAISERROR('%d rows deleted', 10, 0, @RowCount) WITH NOWAIT

END