2015-05-19 19 views
6

Chcę utworzyć SQL za pomocą keywork "między" w Elixir Ecto.Jak utworzyć SQL za pomocą "między" w Elixir Ecto

wiem jak stworzyć SQL przy użyciu like

where: like(t.descript, ^some_description)

Ale gdy próbuję to zrobić w taki sam sposób jak like

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

Dostałem „nie ważne "błąd msg

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

Jak mogę to zrobić we właściwy sposób?

Z góry dziękuję !!

Odpowiedz

11

Nie sądzę, że Ecto zapewnia klauzulę between. Możesz osiągnąć swoje zadanie, używając

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

Masz na myśli 'data_początkowa <=^data_końcowa'? –

+0

tak, prawda. poprawione. @RamonSnir – shankardevy

+5

Dla innych możesz połączyć je w jedną linię z "i". 'where: t.start_date> =^data_początkowa i data w t.start <=^data_końcowa'. – Dustin