1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Datum vergleichen

  • drummingchris
  • 6. November 2009 um 17:35
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • drummingchris
    Punkte
    35
    Beiträge
    4
    • 6. November 2009 um 17:35
    • #1

    hi,

    ich arbeite an einem reservierungssystem und hab bei der abfrage nach dem freien equipment für den zeitraum a bis b folgendes problem:

    reservierungen werden immer mit 2 datumsangaben gespeichert (zB start: 2009-11-06 und ende: 2009-11-07). equipment das bis tag x reserviert ist, kann am gleichen tag wieder ausgeliehen werden (weil die rückgabe immer vor der entlehnung erfolg, nur nebenbei).

    d.h. bei der abfrage habe ich folgende kriterien für freies equipment:
    ende der vorherigen reservierung <= gewünschtes start-datum
    anfang der nachfolgenden reservierung >= gewünschtes enddatum.

    ansich ja ganz logisch und einfach. d.h. wenn etwas von 13. bis 20.12 reserviert ist, kann ichs mir ab dem 20.12 wieder ausborgen. nur ist es so, dass genau dann, wenn etwas bis tag x reserviert ist und ichs ab tag x haben will, das nicht geht, weil das equipment noch als ausgeborgt angezeigt wird (obwohl ich ja kleinergleich/größergleich und nicht kleiner/größer verwendet hab). kanns sein, dass man beim datum anders vergleichen muss??

    ich schreib das ganze in symfony, daher bringt der code glaub ich relativ wenig (sofern man sich nicht in symfony auskennt). den folgenden code nutze ich, um an das bereits reservierte equipment zu kommen:

    Code
    $c = new Criteria();
    $c->addJoin(GeraetPeer::ID, Reservierung2Peer::GERAET);
    $c->addJoin(Reservierung2Peer::RESERVIERUNG, ReservierungPeer::ID);
    $c->add(ReservierungPeer::ENDE, $this->anfang, Criteria::GREATER_EQUAL);
    $c->add(ReservierungPeer::BEGINN, $this->ende, Criteria::LESS_EQUAL);
    $this->equipment = GeraetPeer::doSelect($c);

    any ideas? oder war meine beschreibung noch zu ungenau?

  • Wings-of-Glory
    Punkte
    8.305
    Beiträge
    1.573
    • 6. November 2009 um 17:54
    • #2

    aehm, wie waers mit nem zusaetzlichen eintrag "returned", den du noch zueaetzlich abfragst. kann boolean oder timestamp sein

  • Paulchen
    Gast
    • 6. November 2009 um 18:38
    • #3
    Zitat von drummingchris

    obwohl ich ja kleinergleich/größergleich und nicht kleiner/größer verwendet hab

    Ist nicht genau das das Problem? Du hast das Problem, wenn eingegebenes Datum und gespeichertes Datum gleich sind.

    Zitat von Wings-of-Glory

    aehm, wie waers mit nem zusaetzlichen eintrag "returned", den du noch zueaetzlich abfragst. kann boolean oder timestamp sein

    Du hast nicht verstanden, was drummingchris will. Er speichert in seinem System Geräte und Reservierungen, letztere immer mit Start- und Enddatum. Wenn der Benutzer jetzt eine neue Reservierung mit Start- und Enddatum eingibt, sollen alle Reservierungen ausgegeben werden, die mit der neuen Reservierung zeitlich kollidieren.

  • dowi
    Punkte
    307
    Beiträge
    59
    • 6. November 2009 um 18:45
    • #4

    mögliche ursache kann auch am date selbst liegen. in der datenbank wird der komplette timestamp gespeichert (also mit uhrzeit) und vertraue nicht darauf, dass die uhrzeit mit "0" hinterlegt ist. wenn du es nur tag-genau brauchst, dann solltest du auch nur den tag in deinem vergleich verwenden.

    Einmal editiert, zuletzt von dowi (6. November 2009 um 18:57)

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum