Fragen Sie eine SQL-Tabelle nach Datumsangaben ab, die innerhalb eines Bereichs beginnen/enden, sowie nach Datumsangaben, die innerhalb des Bereichs liegen, aber vor/nach dem Bereich beginnen
P粉147747637
P粉147747637 2023-07-21 10:17:02
0
1
647

Ü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:

  • Für eine bestimmte Woche vom 16. bis 22. Juli umfassen die Ergebnisse die folgenden Ereignisse:
    • Veranstaltungen beginnen und enden am 16. Juli, 19. Juli oder 22. Juli.
    • Veranstaltung beginnt am 10. Juli und endet am 19. Juli.
    • Veranstaltung beginnt am 19. Juli und endet am 26. Juli.
    • Veranstaltung beginnt am 4. Juli und endet am 30. Juli.

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.

P粉147747637
P粉147747637

Antworte allen(1)
P粉222320176

你要寻找的逻辑是:

start <= {$week_end} AND end >= {$week_start}

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage