使用减号运算符比较范围内的日期并比较日期是否大于 Ecto 中的日期的正确方法是什么?
def has_valid_date_range(query) do
from ct in query,
where: (ct.end_date - from_now(0, "day")) > 0,
where: (ct.end_date - from_now(0, "day")) <= ct.due_notice
end
Run Code Online (Sandbox Code Playgroud)
此查询的结果应返回 end_date 减去今天大于 0 且 end_date 减去今天小于 due_notice 的所有行
但它返回给我一个错误
** (Ecto.Query.CompileError) ct.end_date() - from_now(0, "day") is not a valid query expression.
end_date
正如我们在评论部分中指出的,您想要选择当前时间之后且距离due_notice
当前时间几天之前的记录。为此,您可以使用以下查询:
where: ct.end_date > from_now(0, "day") and
ct.end_date <= datetime_add(ct.end_date, ct.due_notice, "day")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3775 次 |
最近记录: |