我有一个具有以下架构的模型:
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 ×1