相关疑难解决方法(0)

在Ecto中按DateTime查询

这是我尝试过的.

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

我也试过了

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

两者都返回相同的消息

value `%Ecto.DateTime{..}` in `where` cannot be cast to type :datetime in query
Run Code Online (Sandbox Code Playgroud)

根据我的理解,我应该在我的查询中使用Ecto.DateTime.也许我错过了一些明显的东西?谢谢!

elixir ecto phoenix-framework

9
推荐指数
1
解决办法
3163
查看次数

使用Ecto和Elixir的默认日期时间

我今天刚刚开始使用Elixir和Phoenix,我试图将Ecto添加为映射器,但是我在使用时间时遇到了一些麻烦.

这是我的模特.

  schema "users" do
    field :name, :string
    field :email, :string
    field :created_at, :datetime, default: Ecto.DateTime.local
    field :updated_at, :datetime, default: Ecto.DateTime.local
  end
Run Code Online (Sandbox Code Playgroud)

我试图在默认情况下设置created_at和updated_at,但是当我尝试编译它时,我收到以下错误.

== Compilation error on file web/models/user.ex ==
** (ArgumentError) invalid default argument `%Ecto.DateTime{day: 13, hour: 19, min: 47, month: 2, sec: 12, year: 2015}` for `:datetime`
lib/ecto/schema.ex:687: Ecto.Schema.check_default!/2
lib/ecto/schema.ex:522: Ecto.Schema.__field__/4
web/models/board.ex:9: (module)
(stdlib) erl_eval.erl:657: :erl_eval.do_apply/6
Run Code Online (Sandbox Code Playgroud)

获取文档没有太大帮助,这样做的正确方法是什么?

postgresql elixir ecto

8
推荐指数
3
解决办法
1万
查看次数

标签 统计

ecto ×2

elixir ×2

phoenix-framework ×1

postgresql ×1