小编Ala*_*lan的帖子

将 naive_datetime 转换为 utc_datetime_usec

我有一个具有以下架构的模型:

schema "my_things" do
    (...)
    field :shifted_inserted_at, :utc_datetime_usec
    timestamps()
  end
Run Code Online (Sandbox Code Playgroud)

timestamps()类型默认为:naive_datetime.

我需要改变我的inserted_at值并将其插入到shifted_inserted_at.

如何将 NaiveDatetime 转换为正确的格式?我尝试过这样的事情:

  shifted_inserted_at =
    my_thing.inserted_at
    |> DateTime.from_naive!("Etc/UTC")
    |> Timex.shift(days: 10)

  my_thing
  |> Ecto.Changeset.change(shifted_inserted_at: shifted_inserted_at)
  |> Repo.update()
Run Code Online (Sandbox Code Playgroud)

但我得到:

** (ArgumentError) :utc_datetime_usec expects microsecond precision, got: #DateTime<2019-05-30 14:40:08Z>
Run Code Online (Sandbox Code Playgroud)

elixir

4
推荐指数
2
解决办法
4889
查看次数

标签 统计

elixir ×1