2009-07-14 6 views
1

Ich arbeite gerade an einem Projekt, bei dem ich Benutzer in die Lage versetzen muss, negative Daten in der Datenbank zu speichern. Diese Daten haben das Potenzial, sich über viele Jahrtausende v. Chr. Zu erstrecken, und so spät wie "Heute". Ich habe an vielen Projekten gearbeitet, die Daten gespeichert haben, aber sie waren alle relativ aktuelle Daten, und keiner von ihnen war jemals negativ (BC).Was ist zu beachten, bevor negative Daten in MySQL gespeichert werden?

Welche Arten von Dingen sollte ich berücksichtigen, wenn ich mit dieser Art von Daten arbeite? Ich bin mir der vielen zeitlichen Veränderungen in der Geschichte bewusst, aber ich werde mit dem modernen Kalender arbeiten und mir nicht zu viele Gedanken über Konvertierungen machen. Jede Information über Conversions würde jedoch sehr geschätzt werden, da es ein sehr relevantes Thema ist, an dem ich akademisch interessiert bin, obwohl ich mich während dieses Projekts nicht darauf konzentrieren muss.

Update: Ich werde Geschichte YYYY-MM-DD sein (das Format ist nicht erforderlich)

Antwort

2

Wie genau sieht Ihre Lagerung muss sein? Sind es Jahre, Tage oder Stunden/Minuten? Wenn Sie nur Tage oder Jahre betrachten, dann brauchen Sie vielleicht nicht das Datum zu speichern, sondern einen Offset von +/- Tag/Jahre von Ihrem 0 Datum

+0

Jahr, Monat, Tag, Stunden, Minuten – Sampson

+0

Beendet mit individuellen Feldern für Jahr (int), Monat (int) und Tag (int). Geändert nach Periode (1 = AD, 0 = BC). – Sampson

0

Ich hatte das ähnliche Problem und ich Ich wollte die Weiterleitung von Datumsfeldern in der Datenbank fortsetzen, damit ich die Datumsbereichsuche mit einer Genauigkeit von bis zu einem Tag für historische Werte verwenden kann. (My DB enthält Geburtsdatum und Datum der römischen Kaiser ...)

Die Lösung ein konstantes Jahr (Beispiel: 3000) hinzuzufügen, war zu allen Terminen, bevor sie an die DB Addieren und Subtrahieren der gleichen Nummer vor dem Anzeigen der Abfrageergebnisse für die Benutzer.

Wenn in der DB bereits einige Datenwerte enthalten sind, denken Sie daran, den aktuellen Wert mit der neuen Konstantennummer zu aktualisieren.

+1

Genaues Duplikat von [Ihre Antwort] (http://stackoverflow.com/questions/2487543/does-mysql-support-historical-date-like-1200/22089006#22089006), hören Sie auf, doppelte Antworten zu posten, und erstellen Sie keine Redundanz . –