Christoph Ruhnke: Datenbankdesign

Beitrag lesen

Das Problem ist, dass ich den Monat mit Zahlenangaben abspeichere, also von 01-12. Bei der Abfrage suche ich dann mit LIKE nach entsprechenden Datensätzen. Leider bekomme ich dann auch Ergebnisse, wo im Tag eine 01-12 vorkommt.
Nun meine Frage: Ist es sinnvoll die Datumsangeben in jewils drei Spalten abzuspeichern, um solche Fehlausgaben zu vermeiden?
Also je eine Spalte für Tag, Monat, Jahr.
Oder gibt es einen eleganteren Lösungsansatz.

Versuchs mal mit einem "richtigen" Datumsfeld (Typ DATE oder DATETIME), nicht mit einem Textfeld (Typ VARCHAR o.ä.). Dann kannst Du direkt auf größer, kleiner oder between vergleichen, sogar mit automatischer Berücksichtigung der Uhrzeit:

SELECT * FROM Termine WHERE Termin BETWEEN #2002/03/11 12:00:00# AND #2002/03/11 18:30:59#

(Beispiel: MS-Access-DB über ODBC)

Bei der Ausgabe des Datensatzes kannst Du das Datum/Zeit ja mit deiner Server- oder Clientseitigen Scriptsprache so formattieren, wie Du es brauchst, bei der Eingabe von Daten baust Du Dir das Datum im oben beschriebenen Format zusammen.

CU Christoph