2017-12-08 4 views
0

Ich treffe gerade eine Wand. Ich arbeite mit Elixir und Ecto und ich habe eine Tabelle mit Daten und eine Spalte mit Datetime.Wie sortierst du eine Tabelle mit Datum und Uhrzeit mit Ecto?

Die Datetime-Spalte ist wie folgt:

2017-11-16 16:02:01 
2017-11-23 09:00:07 
2017-11-27 13:19:58 
2017-12-05 07:48:42 

Was ich will ist eine Art diese Tabelle zu tun, basierend auf der Zeit, statt Datum. Also wäre das Ergebnis (ASC):

2017-12-05 07:48:42 
2017-11-23 09:00:07 
2017-11-27 13:19:58 
2017-11-16 16:02:01 

Haben Sie irgendwelche Ideen in ecto? Eine Postgres-Abfrage könnte auch helfen!

Antwort

1

Also ich denke, so etwas wie dies funktionieren soll:

Post 
|> order_by([p], fragment("?::time", p.inserted_at)) 
|> Repo.all() 

Hier verwenden Sie ein Fragment, um den PostgreSQL Guss Mechanismus zu nutzen, die die Zeit teilweise aus der Datumzeit extrahiert. Ich habe es nicht getestet, aber ich denke, es sollte funktionieren.

+0

Das hat perfekt funktioniert, danke! – TheYuwana