etimologia - Cómo comparar fechas con Elixir y Ecto.
phoenix mix routes (1)
Puede hacerlo usando datetime_add/3 usando un valor negativo como argumento de count
:
from u in User,
where: u.reset_password_sent_at > datetime_add(^Ecto.DateTime.utc, -5, "minute")
Si necesita hacerlo sin utilizar una consulta, puede utilizar las funciones en el módulo de :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)
Tengo una instancia de Ecto.DateTime
que obtengo de una columna de base de datos y necesito verificar si esta fecha es más de 5 minutos en el pasado.
¿Cuál es la mejor manera de hacer eso?
Para que quede más claro, esto es lo que necesito en ruby ->
updated_at < (Time.now - 5.minutes)