Auswählen von Daten aus einem Datumsbereich zwischen zwei Daten
Gegeben sei eine Tabelle mit dem Namen „Product_Sales“, die Daten zu Produktverkäufen enthält, einschließlich „Sold_by“, „Menge“, „From_date“. und To_date suchen wir nach einer Abfrage, um Verkaufsdaten innerhalb eines bestimmten Datumsbereichs abzurufen. Unser Ziel ist es beispielsweise, Daten vom 3. Januar 2013 bis zum 9. Januar 2013 auszuwählen.
Zunächst beobachten wir, dass jedes Datum innerhalb des Zielbereichs sich entweder mit dem From_date und To_date einer Zeile schneidet oder liegt völlig außerhalb beider Grenzen. Daher suchen wir nach einer Abfrage, die Zeilen zurückgibt, die diese Bedingung erfüllen.
Ein Ansatz besteht darin, alle gültigen Intervalle zu identifizieren (diejenigen, bei denen sich der Zielbereich mit dem Intervall der Zeile überschneidet) und alle ungültigen Intervalle auszuschließen. Zu diesem Zweck können wir die folgende Abfrage verwenden:
SELECT * FROM Product_Sales WHERE NOT (From_date > @RangeTill OR To_date < @RangeFrom)
wobei @RangeTill die Obergrenze des Zielbereichs (einschließlich) und @RangeFrom die Untergrenze (einschließlich) ist. Diese Abfrage nutzt die Tatsache aus, dass Intervallschnittpunkte im nicht ausgeschlossenen Fall die folgende Bedingung erfüllen:
Das obige ist der detaillierte Inhalt vonWie wähle ich Produktverkaufsdaten innerhalb eines bestimmten Datumsbereichs mithilfe von SQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!