Current section
Files
Jump to
Current section
Files
lib/ecto/query.ex
defmodule AntlDateTimeUtils.Ecto.Query do
@moduledoc """
Utils for Ecto.Query around DateTime
"""
import Ecto.Query
@spec where_in_period(Ecto.Queryable.t(), atom, atom, DateTime.t()) :: Ecto.Query.t()
def where_in_period(queryable, start_at_key, end_at_key, %DateTime{} = datetime)
when is_atom(start_at_key) and is_atom(end_at_key) do
from(q in queryable,
where:
field(q, ^start_at_key) <= ^datetime and
(field(q, ^end_at_key) > ^datetime or is_nil(field(q, ^end_at_key)))
)
end
end