Seite 1 von 1
[gelöst] Datumsprobleme
Verfasst: Mo 8. Jan 2018, 17:24
von MiZi
Nach längerer Zeit habe ich mich jetzt mal wieder mit meiner Mitgliederverwaltung beschäftigt und bin auf einen "Fehler" gestoßen. Ich habe eine Abfrage "Jubiläum" (siehe unten) in der ich die Mitgliedsdauer 10, 25 und 40 Jahre abfrage. Die Spalte "Eintrittsdatum" ist als Datum (deutsch) formatiert, in meinem Fall also tt.mm.jjjj. Wenn ich jetzt aber die Abfrage starte wird mir mm.tt.jjjj ausgegeben, aus dem Eintrittsdatum 05.01.2008 wird 01.05.2008 gemacht und ich bekomme natürlich die falschen Jubilanten. Gibt es einen speziellen Datumsbefehl für das deutsche Datum? Ich habe nichts finden können, was aber nichts heißen muss, ich bin was Base betrifft ein absoluter Anfänger.
Code: Alles auswählen
SELECT "Nachname", "Vorname", "Eintrittsdatum", DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) AS "Jubiläum" FROM "Mitglieder" WHERE ( DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) = 10 OR DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) = 25 OR DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) = 40 ) ORDER BY "Eintrittsdatum" ASC
Re: Datumsprobleme
Verfasst: Mo 8. Jan 2018, 21:29
von RobertG
Hallo MiZi,
es gibt keine Bearbeitung eines speziell "deutschen" Datums. Das ist eine reine Formatierungsangelegenheit. Innerhalb der Datenbank wird sowieso mit dem Datum in der Schreibweise YYYY-MM-DD gearbeitet.
Die Formatierung in Abfragen wird bei Base leider nicht gespeichert. Allerdings benutzt Du eine Abfrage, die direkt einen Wert aus einer Tabelle ausliest. Da müsste die Abfrage die Formatierung der Tabelle übernehmen.
Rufe einmal die Tabelle auf und schau dort nach, wie die Datumswerte dort dargestellt werden. Das kann sowohl der Bearbeitungsdialog zur Tabelle als auch die Tabellenansicht zur Dateneingabe sein. Die zuletzt gemachte Formatierung ist, so nehme ich an, die, die bei Dir das Vertauschen von Tag und Monat erzeugt. Wobei ich mir nicht vorstellen kann, wie Du diese Formatierung erzeugt hast.
Probiere einmal
Code: Alles auswählen
SELECT DAY( "Eintrittsdatum") "Tag", MONTH( "Eintrittsdatum") "Monat", YEAR( "Eintrittsdatum") "Jahr" FROM "Mitglieder"
Dann siehst Du, ob da nicht irgendetwas bei der Eingabe daneben gegangen ist.
Gruß
Robert
Re: Datumsprobleme
Verfasst: Di 9. Jan 2018, 15:04
von MiZi
Hallo Robert,
danke für deine superschnelle Antwort!
Mit deinem Code werden die Eintrittsdaten richtig dargestellt. Hab jetzt nochmal alles durchgesehen, der Feldtyp ist DATE, die Formatierung ist tt.mm.jjjj. Ein Großteil der Datensätze stammt aus einer CSV- oder Excel-Tabelle, kann es daran liegen?
Re: Datumsprobleme
Verfasst: Di 9. Jan 2018, 15:30
von RobertG
Hallo MiZi,
das heißt aber immer noch: Wenn Du die Tabelle öffnest, dann siehst Du die Datumseinträge richtig, wenn Du die Abfrage öffnest, dann siehst Du die Einträge mit vertauschten Monat und Tag?
Gruß
Robert
Re: Datumsprobleme
Verfasst: Di 9. Jan 2018, 15:34
von MiZi
So ist es!
Re: Datumsprobleme
Verfasst: Di 9. Jan 2018, 20:34
von RobertG
Hallo MiZi,
kannst Du eventuell die Konstruktion (Tabelle, Abfrage und einen fehlerhaften Datensatz) hier posten? So ein Verhalten, wie Du es schilderst, ist mir noch nie unter gekommen.
Gegebenenfalls kannst Du mir das Beispiel auch per privater Mail schicken - siehe meine Homepage.
Gruß
Robert
Re: Datumsprobleme
Verfasst: Mi 10. Jan 2018, 17:40
von MiZi
Hallo Robert,
ich sehe gerade, dass ich mich da nochmal korrigieren muss, meine Angaben waren doch etwas ungenau!
Die Abfrage funktioniert einwandfrei! Aber, ich habe ein Formular erstellt, in dem mir Geburtstage, Jubiläen usw. und so fort angezeigt werden und in diesem Formular steckt der Fehler. Angezeigt werden mir die Sachen über Tabellen-Steuerelemente, die auf die jeweiligen Abfragen zurückgreifen. Ich haben eben festgestellt, dass in den Spalten-Eigenschaften das Datumsformat falsch war und zwar in zwei von drei Tabellen-Steuerelementen. Warum das verstellt war kann ich mir nicht erklären, als ich das letzte mal mit gearbeitet habe, war noch alles in Ordnung!
Tut mir leid, dass ich deine Zeit in Anspruch genommen habe aber nochmal tausend Dank, dass du dich solcher Sachen immer wieder annimmst!