2009-06-29 1 views
1

Ich habe eine Tabelle, die drei verschiedene Datumsspalten hat, also setze ich jede Spalte als Typ "Datum".Mysql welcher Feldtyp für Daten mit einer Mischung aus Voll- und Teildaten verwendet werden soll

Aber immer wenn ich Daten importiere, scheint es, sie zu ändern, und ich habe gefunden, dass es ist, weil mysql Null Tage und Monate nicht erlaubt.

Meine Reisedaten reichen von

1909-00-00 1963-09-00 1907-11-30

so manchmal nicht wir den Monat wissen, manchmal Tag und manchmal nur das Jahr wurde aufgenommen.

Sicherlich ist der ‚richtige‘ Weg, dies zu tun, ist eine Art von Datumsfeld zu verwenden, aber ich habe eine Vielzahl von verschiedenen Layouts versuchte, wenn die Daten und nicht Werke importieren :( dd-mm-yyyy mm-dd- yyyy yyyy/tt/mm

Irgendwelche Vorschläge?

Antwort

0

ich würde vorschlagen, eine varchar dann mit deren Umwandlung, wann immer Sie es brauchen ein Datum. Here ist eine Website mit einigen Datumsfunktionen, die nützlich sein würde.

+0

Dank Birdlips, das ist irgendwie wo ich auch kam. Ich frage mich jedoch, warum gibt es keine Funktion oder Feldtyp für Daten mit Null-Einträge, das ist oft der Fall in historischen Apps! –

+0

Soweit ich die Dinge verstehe, wird die Datenbank versuchen, das Datum zu bestätigen, wie es eingegeben wird. Wenn es ungültig ist, können Sie es nicht speichern. Dies dient der Aufrechterhaltung der Datenintegrität. Ich glaube nicht, dass Sie Optionen haben, um einen Nicht-Datumswert in einem Datumsfeld zu speichern. – northpole

1

Es gibt keine Datenstruktur, die a ct als ein Datum, würde aber 00 für irgendeine der Komponenten erlauben. Wenn Sie wirklich darauf bestehen, dies zu emulieren, können Sie die Daten in 3 Spalten - Jahr, Monat, Tag - aufteilen und dann einen komplizierten Trigger schreiben, um jede Aktualisierungs-/Einfüge-Abfrage zu validieren.

Ich würde es aber nicht wagen. Aber du hast gefragt, und ich habe versucht zu antworten. ;]