Alle Einträge zwischen zwei Timestamps; Feld enddate kann aber leer sein

Pinky

Erfahrenes Mitglied
Liebe Leute

ich habe in einer Datenbank Inhalte gespeichert (oh welch Wunder... :D). Nun möchte ich die Einträge zeitlich begrenzen können. Hierzu fügte ich zwei Felder (startdate, enddate) ein. Die Datumswerte speichere ich als UNIX-Timestamp.

Nun wünsche ich mir, dass auf meiner Webseite jeweils nur die Inhalt angezeigt werden, die

startdate < time() AND enddate > time()

Das Problem ist jedoch, dass die beiden Felder (startdate, enddate) auch leer gelassen werden können. Bei Startdate ist das nicht so gravierend. Hingegen ein leerer Eintrag beim enddate führt jeweils dazu, dass der Datensatz nicht angezeigt wird (nichts kann ja nie grösser als time() sein).

Wünschenswert ist, wenn ich die datumsabfrage direkt über die sql-Abfrage machen kann. Momentan stehe ich grad auf der Leitung. Vermutlich ist die Lösung wesentlich simpler, als ich mir es vorstelle...!

Vielen Dank für jede Hilfe und seid lieb Gegrüsst
Euer Pinky
 
Als erstes sollten wir mal definieren mit was für einer Datenbank du arbeiten willst. MySQL, Oracle, MS SQL?

Grundsätzlich geht es so
SQL:
NOW() BETWEEN COALESCE(startdate, NOW()) AND COALESCE(enddate, NOW());
 
Zuletzt bearbeitet von einem Moderator:
Zurück