如何在 Elixir Ecto 中使用 'between' 创建 SQL

How to create a SQL using 'between' in Elixir Ecto

我想在 Elixir Ecto 中使用关键字 'between' 创建一个 SQL。

我知道如何使用 like

创建 sql

where: like(t.descript, ^some_description)

但是当我尝试以与like

相同的方式进行操作时

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

我收到 "not valid" 错误消息

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

我怎样才能正确地做到这一点?

提前致谢!!

我认为 Ecto 没有提供 between 子句。您可以使用

来完成您的任务
where: t.start_date >= ^start_date,
where: t.start_date <= ^end_date

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

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

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