Datumsabfrage in Mongoid

8

Das wurde oft gefragt, aber ich habe immer noch Probleme damit.

Ich habe ein Datum, das ich erhalte, und habe es als Datum gespeichert. Ich muss auf Größer als und Kleiner als abfragen, also änderte ich es in Zeit, versuchte es erneut, aber ich bekomme merkwürdige Ergebnisse.

Ich mache das

%Vor%

und ich bekomme alte Platten, 1940er, 1960er und andere. Ich habe versucht, Zeit zu konvertieren, indem ich .utc am Ende hinzufügte, nur gegen Date.today vergleichend, aber nichts hat das Problem bis jetzt gerodet. Dies ist der Selektor, der von Mongoid

erzeugt wird %Vor%

Ich erhalte das Datum in diesem Format "2011-09-11" und speichere es im Feld Zeit. Versucht, das auch als Time utc zu analysieren, kein Glück.

Irgendeine Idee? Ich benutze Mongoid 2.0.2. Spätere Versionen scheinen mit anderen Erweiterungen, die ich verwende, nicht kompatibel zu sein.

[UPDATE]

So ist das Problem mit den alten Daten vor 1970 anscheinend. Wie gehe ich jetzt mit ihnen um?

    
Bashar Abdullah 12.09.2011, 16:09
quelle

1 Antwort

2

Dies ist ein bekannter Fehler in Mongo. Siehe AUSGABE 405

Der Grund ist, dass Mongo eine vorzeichenlose Zahl verwendet, um Daten zu speichern, also alles vor der Epoche rollt weit in die Zukunft.

Leider wurde dieses Problem für die heute veröffentlichte stabile Version 2.0 behoben. Ein Upgrade auf diese Version sollte Ihr Problem lösen.

    
Javier Ferrero 12.09.2011, 19:36
quelle

Tags und Links