データベースの列から取得したインスタンスがありEcto.DateTime
、この日付が過去 5 分を超えているかどうかを確認する必要があります。
それを行う最善の方法は何ですか?
より明確にするために、これがルビーで必要なものです->
updated_at < (Time.now - 5.minutes)
データベースの列から取得したインスタンスがありEcto.DateTime
、この日付が過去 5 分を超えているかどうかを確認する必要があります。
それを行う最善の方法は何ですか?
より明確にするために、これがルビーで必要なものです->
updated_at < (Time.now - 5.minutes)
引数として負の値を使用してdatetime_add/3を使用して実行できます。count
from u in User,
where: u.reset_password_sent_at > datetime_add(^Ecto.DateTime.utc, -5, "minute")
クエリを使用せずに実行する必要がある場合は、:calendar erlang モジュールの関数を使用できます。
ecto_5_mins_ago =
Ecto.DateTime.utc
|> Ecto.DateTime.to_erl
|> :calendar.datetime_to_gregorian_seconds
|> Kernel.-(60 * 5)
|> :calendar.gregorian_seconds_to_datetime
|> Ecto.DateTime.from_erl
Ecto.DateTime.compare(u.reset_password_token, ecto_5_mins_ago)