Ich habe eine Rails-Anwendung, wo ich Created_at als Datetime (Standard) speichern. Ich baue ein Formular für die Suche und ich finde, ich muss find_by_sql verwenden, um einige komplexe Unterabfragen zu tun. Das Formular hat einen Datumsbereich (keine Zeit), nach dem für das created_at-Feld gesucht werden kann.Wie Datumsbereich für Rails/MySQL korrekt konvertiert oder abgefragt wird DateTime-Spalte
Das Problem ich finde, ist, dass wenn ich in nur dem Datum String übergeben für Bereich abfragen ...
... status_changes.created_at between '2009-01-24' and '2009-03-12' ...
Ich erhalte zurück Aufzeichnungen, die ein created_at Datum 2009-01-23 17 haben: 10:39 -0800, weil dies in der db gespeichert ist als 2009-01-24 01:10:39 (UTC)
Wie kann ich das beheben, so dass das Ergebnis den betreffenden Datensatz nicht zurückgibt?
Es scheint, entweder ich brauche den Datumsbereich konvertieren die find_by_sql sein UTC spezifische oder sagen zu der aktuellen Zeitzone basierend Suchen Sie stattdessen die Spalte als utc lesen ...
Jeder Abnehmer?
John
Dank Jordan. Ich bin mir nicht sicher, ob ich das in absehbarer Zeit testen kann, aber Ihre Antwort scheint plausibel. – Streamline