How to get all data before and after 10 days of interval?
It is probably best to issue two queries.

SELECT * FROM events
    WHERE `date` &gt;= NOW() - INTERVAL 10 DAY
      AND `date`  &lt; NOW();

SELECT * FROM events
    WHERE `date` &gt;= NOW()
      AND `date`  &lt; NOW() + INTERVAL 10 DAY;


You could get both at once, but it could be inconvenient if you need to separate them:

SELECT * FROM events
    WHERE `date` &gt;= NOW() - INTERVAL 10 DAY
      AND `date`  &lt; NOW() + INTERVAL 10 DAY;


If you want to base on midnight instead of the current second, use CURDATE() instead of NOW().