Sélection de données à partir d'une plage de dates comprise entre deux dates
Étant donné un tableau nommé Product_Sales contenant des données sur les ventes de produits, y compris Sold_by, Qty, From_date , et To_date, nous recherchons une requête pour récupérer les données de ventes dans une plage de dates spécifique. Par exemple, nous visons à sélectionner des données du 3 janvier 2013 au 9 janvier 2013.
Pour commencer, nous observons que toute date dans la plage cible croise les dates From_date et To_date d'une ligne ou se situe entièrement en dehors des deux frontières. Par conséquent, nous recherchons une requête qui renvoie les lignes qui remplissent cette condition.
Une approche consiste à identifier tous les intervalles valides (ceux où la plage cible chevauche l'intervalle de la ligne) et à exclure tous les intervalles non valides. À cette fin, nous pouvons utiliser la requête suivante :
SELECT * FROM Product_Sales WHERE NOT (From_date > @RangeTill OR To_date < @RangeFrom)
où @RangeTill est la limite supérieure de la plage cible (incluse) et @RangeFrom est la limite inférieure (incluse). Cette requête exploite le fait que les intersections d'intervalles dans le cas non exclu satisferont la condition suivante :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!