Delete one in two rows in an ordered result set
The easiest way is to join the table with one combined with sequential numbers:

DELETE w.* 
  FROM table AS w
  NATURAL JOIN ( SELECT z.*
                      , IF(@cnt &lt;&gt; 0, @cnt:=0, @cnt:=1) AS cnt
                   FROM table AS z
                  ORDER BY z.date ASC
               ) AS q 
 WHERE MOD(q.cnt, 2) = 1


Also the same can be done by windowed function ROW_NUMBER() if mysql is  version 8+.