12

我想使用 Elixir Ecto 中的“between”键创建一个 SQL。

我知道如何使用like

where: like(t.descript, ^some_description)

但是当我尝试以与like

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

我收到“无效”错误消息

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

我怎样才能以正确的方式做到这一点?

提前致谢!!

4

2 回答 2

20

我不认为 Ecto 提供了一个between子句。你可以通过使用来完成你的任务

where: t.start_date >= ^start_date,
where: t.start_date <= ^end_date
于 2015-05-19T08:22:19.350 回答
10

您可以使用它fragment来执行此操作。

where: fragment("? BETWEEN ? AND ?", t.date, ^start_date, ^end_date)

https://hexdocs.pm/ecto/3.1.4/Ecto.Query.API.html#fragment/1

于 2019-08-16T23:51:44.147 回答