2015-05-19 13 views
6

Ich möchte ein SQL mit dem Schlüsselwort 'zwischen' in Elixir Ecto erstellen.Wie erstelle ich ein SQL mit 'between' in Elixir Ecto

Ich weiß, wie eine SQL-like

where: like(t.descript, ^some_description)

mit schaffen, aber wenn ich versuche, es auf die gleiche Art und Weise zu tun, wie like

where: between(t.start_date, ^start_date, ^end_date),

Ich habe die „ungültig msg

** (Ecto.Query.CompileError) `between(t.start_date(), ^start_date, ^end_date)` is not a valid query expression.** 

Wie kann ich es richtig machen?

Vielen Dank im Voraus!

Antwort

11

Ich glaube nicht, Ecto bietet eine between Klausel. Sie könnten Ihre Aufgabe mit

where: t.start_date >= ^start_date, 
where: t.start_date <= ^end_date 
+0

erreichen. Meinst du 'start_date <=^end_date'? –

+0

ja, richtig. korrigiert. @RamonSnir – shankardevy

+5

Nur für andere, können Sie diese in eine Zeile mit einem 'und' kombinieren. 'where: t.start_date> =^start_datum und t.start_date <=^end_date'. – Dustin