Übersicht:
Ich habe eine SQL-Datenbanktabelle, in der jede Zeile (Ereignis) ein als Zeitstempel formatiertes Start- und Enddatum enthält.
Ziel:
Zeigt Ereignisse für eine bestimmte Woche an. Dazu gehören Ereignisse, die innerhalb dieser Woche beginnen und enden, aber auch innerhalb dieser Woche stattfinden können (ihre Start-/Enddaten können innerhalb dieser Woche liegen oder sie können beginnen und enden, bevor diese Woche danach endet diese Woche). Beispiel für erwartetes Ergebnis:
Ich habe versucht, eine BETWEEN-Abfrage und eine Abfrage mit start > AND end < zu verwenden, aber beide Methoden berücksichtigen keine „überlappenden“ Daten.
Frage: Ist es möglich, eine einzige Abfrage zu schreiben, die alle diese Fälle abdeckt?
Übrigens, wenn es eine bessere Lösung gibt, kann ich auch ein anderes Datumsformat als den Zeitstempel verwenden.
你要寻找的逻辑是:
start <= {$week_end} AND end >= {$week_start}