2015-05-19 17 views
6

Tôi muốn tạo một SQL bằng cách sử dụng keywork 'between' trong Elixir Ecto.Cách tạo một SQL bằng cách sử dụng 'between' trong Elixir Ecto

tôi biết làm thế nào để tạo ra một sql sử dụng like

where: like(t.descript, ^some_description)

Nhưng khi tôi cố gắng để làm điều đó theo cách tương tự như like

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

tôi đã "không hợp lệ "error msg

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

Làm thế nào tôi có thể làm điều đó đúng cách?

Cảm ơn trước !!

Trả lời

11

Tôi không nghĩ Ecto cung cấp mệnh đề between. Bạn có thể đạt được nhiệm vụ của mình bằng cách sử dụng

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

Ý của bạn là 'start_date <=^end_date'? –

+0

vâng, đúng. sửa chữa. @RamonSnir – shankardevy

+5

Chỉ dành cho những người khác, bạn có thể kết hợp chúng thành một dòng với một 'và'. 'where: t.start_date> =^start_date và t.start_date <=^end_date'. – Dustin

Các vấn đề liên quan