web-dev-qa-db-fra.com

Comment obtenir toutes les données avant et après 10 jours d'intervalle?

    SELECT * FROM events  WHERE `date` 
    BETWEEN NOW() AND DATE_ADD
    (NOW(), INTERVAL 10 DAY) order by date

J'utilise le code ci-dessus pour extraire les données d'événements de dix jours d'intervalle. Maintenant, je veux extraire toutes les données avant ces 10 jours d'intervalle et après 10 jours d'intervalle. Comment puis-je faire cela de manière parfaite?

Veuillez aider. Merci d'avance pour votre temps

4
Allen Titan

Il est probablement préférable d'émettre deux requêtes.

SELECT * FROM events
    WHERE `date` >= NOW() - INTERVAL 10 DAY
      AND `date`  < NOW();

SELECT * FROM events
    WHERE `date` >= NOW()
      AND `date`  < NOW() + INTERVAL 10 DAY;

Vous pouvez obtenir les deux à la fois, mais cela peut être gênant si vous devez les séparer:

SELECT * FROM events
    WHERE `date` >= NOW() - INTERVAL 10 DAY
      AND `date`  < NOW() + INTERVAL 10 DAY;

Si vous souhaitez vous baser sur minuit au lieu de la seconde actuelle, utilisez CURDATE() au lieu de NOW().

2
Rick James