Hahne Geschrieben 13. Juli 2008 Geschrieben 13. Juli 2008 Hallo, ich weiss es gibt bessere Methoden diese Problematik zu lösen aber ich habe folgendes gemacht: Ich habe in meiner Datenbank eine Tabelle angelegt wo die Spalten "Tag", "Monat" und "Jahr" enthalten sind. Diese wollte ich jetzt geordnet ausgeben lassen. Sprich, ich möchte von dem heutigen Tag bis zum Ende diesen Jahres alle Einträge ausgeben lassen. Dem entsprechend habe ich meine SQL-Abfrage folgendermaßen gestaltet: SELECT * FROM bgt_action WHERE Tag BETWEEN '" + DateTime.Now.Day + "' AND '31' AND Monat BETWEEN '" + DateTime.Now.Month + "' AND '12' AND Jahr BETWEEN '" + DateTime.Now.Year + "' AND '" + DateTime.Now.Year + "' ORDER BY Jahr, Monat, Tag Ein paar Einträge hat diese Befehl immer ausgegeben und einige nicht obwohl diese auch hätten ausgegeben werden sollen. Ich find den Fehler irgendwie net. Zitieren
Amstelchen Geschrieben 13. Juli 2008 Geschrieben 13. Juli 2008 deine einschränkenden kriterien sind falsch. bedenke insbesonders, dass tage von monaten und monate wiederum von jahren abhängig sind. du suchst ja auch immer heute bis 31., egal welcher monat, d.h. dati von den vorherigen monaten, die nicht im tage-kriterium drin sind, fehlen dir z.b. heute am 13. bekommst du für alle monate immer nur alle ergebniszeilen von 13./14. bis zum 31. hast du das jeweilige datum nicht als DATE-feld? alternativ mach aus T.M.J temporär ein DATE und daraus ein WHERE. s'Amstel Zitieren
Hahne Geschrieben 13. Juli 2008 Autor Geschrieben 13. Juli 2008 deine einschränkenden kriterien sind falsch. z.b. heute am 13. bekommst du für alle monate immer nur alle ergebniszeilen von 13./14. bis zum 31. s'Amstel ja das ist doch richtig oder habe ich da einen denkfehler in meiner logik? ich möchte doch nur vom 13. bis zum 31., dann nur vom juli bis dezember und nur alle einträge ausn jahr 2008 ausgeben lassen. neee hab kein datumsfeld. habe das datum in jede einzelne spalte aufgeteilt. ähm, hast du vielleicht ein gutes tutorial wie man mit datumformaten richtig arbetiet u.s.w. ? Zitieren
Amstelchen Geschrieben 13. Juli 2008 Geschrieben 13. Juli 2008 ja, du hast da einen denkfehler. mit deinem SQL bekommst du *immer* nur alle tage, die der 13. bis zum 31. sind, niemals aber den 4. dezember oder den 11. mai. wenn du das selber aufgeteilt hast und es nicht irgendeine nicht behebbare altlast ist: mach das mit den drei einzelnen datumsformaten weg - das ist bäh - und nimm DATE (abhängig von deinem DBMS, das du nicht angegeben hast). s'Amstel Zitieren
Hahne Geschrieben 14. Juli 2008 Autor Geschrieben 14. Juli 2008 Ah, jetzt hat's klick gemacht. Stimmt irgendwie! Frage mich gerade wieso ich das nicht vorher gesehen hab :upps Gibt es denn irgendwo ein gutes Tutorial wie man richtig mit Datumsformaten arbeitet? Zitieren
Hahne Geschrieben 14. Juli 2008 Autor Geschrieben 14. Juli 2008 Hab mich jetzt noch einmal ein wenig durch das Themengebiet "DateTime" u.s.w. gewühlt und hab's endlich verstanden! Trotzdem vielen Dank! Werde meine Seite jetzt so umgestalten Zitieren
Guybrush Threepwood Geschrieben 15. Juli 2008 Geschrieben 15. Juli 2008 Wenn da nicht Clients aus unterschiedlichen Zeitzonen drauf zugreifen sollen dann gibts da eigentlich nicht soviel beim Datum zu beachten. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.