Ich habe eine Datenbank, welche unter anderem drei Spalten beinhaltet: von, bis in welchen Anfangszeit und Endzeit eines Events stehen
(Beispiel: von = 18:00, bis = 20:00)
Ich habe nun eine sql abfrage mit dem befehl „order by datum asc, von asc“, was auch funktioniert. Nach Datum sortiert, steht 18:00 vor 20:00 und so weiter. Wenn ich aber nun eine Anfangszeit von 00:00 habe, dann steht das ganz oben, klar da ja 0 kleiner ist als 1. Ich möchte aber, dass 00:00 auch unterhalt von 20:00 oder ähnliches steht.
Wie kann ich das realisieren, bin für jeden Tip dankbar
Also nur mal zum Verständnis.
Du hast betsimmte Events die eine Start und Endzeit haben.
Angenommen deine Start und Endzeit stehen in einzelnen Felndern.
Wieso lässt du das Ganze dann nicht nach der Startzeit sortieren?
Denn wenn es 0 uhr ist und das gleiche Datum, dann ist ja klar, dass es früher ist. Wenn das Datum jedoch einen tag weiter ist müste es auch unter den anderen angezeigt werden
Wäre es also nicht sinnvoll das ganze nur nach den Anfangszeiten zu sortieren?
@[B]Tomm[/B]
Danke, das ist denk ich etwas doof, wenn dann 24:00 da stehen würde, ginge aber auch, dass wenn man bei der ausgabe dies wieder umwandeln lässt. Danke für den Anstoß
@[B]Gilles[/B]
Danke, das war nur ein Schreibfehler, dass es nach datum sortiert, es sollte schon die Startzeit sein, ist es auch bei mir. aber danke für den Gedankenanstoss, hätt ich auch drauf kommen können, mit dem Datum, einfach wenn 00:00 uhr ist einfach das Datum auf einen Tag danach zu legen, so werd ichs machen, danke
Es würde sich anbieten, zwei Spalten vom Typ DATETIME für Start- bzw. Endzeitpunkt anzulegen. Alles andere ist irgendwie seltsam und mit Sicherheit unpraktisch.
Und ich würde kein DATETIME für das Ende benutzen, sondern eine Zeitdauer Dauer (z.b. Stunden), damit wird das Datenbankdesign wesentlich flexibler. Du solltest dir mal anschauen wieviel mysql Funktionen für Datetime Felder es gibt.
Ich dachte, zweimal DATETIME wäre flexibler, weil sich dann ohne weitere Berechnungen auch alle Einträge ausgeben lassen, die an einem Tag enden o. ä. Ein kompletter DATETIME-Wert ist in sich geschlossener als die Angabe eines Intervalls.
Man könnte ohne großartiges Nachdenken sowas machen: