Запрос по DateTime в Ecto

Вот что я пробовал.

date = Ecto.DateTime.from_erl(:calendar.universal_time())
query |> where([record], record.deadline >= ^date)

я тоже пробовал

date = Ecto.DateTime.from_erl(:calendar.universal_time())
query = from m in MyApp.SomeModel,
      where: m.deadline >= ^date,
      select: m

Оба возвращают одно и то же сообщение

value `%Ecto.DateTime{..}` in `where` cannot be cast to type :datetime in query

Насколько я понимаю, я должен использовать Ecto.DateTime в своих запросах. Может быть, я упускаю что-то очевидное? Спасибо!


person JB.    schedule 14.05.2015    source источник


Ответы (1)


Тип :datetime является собственным типом и работает только с кортежами. Если вы установите тип столбца Ecto.DateTime в своей схеме, он сможет работать с типами более высокого уровня, такими как структура Ecto.DateTime.

person José Valim    schedule 14.05.2015
comment
Потрясающий! Спасибо. Работал отлично. Изменено: field :deadline, :datetime На: field :deadline, Ecto.DateTime - person JB.; 14.05.2015