首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将日期与Elixir和Ecto进行比较

如何将日期与Elixir和Ecto进行比较
EN

Stack Overflow用户
提问于 2015-08-31 18:31:22
回答 1查看 3.3K关注 0票数 20

我有一个从数据库列获得的Ecto.DateTime实例,我需要检查这个日期是否超过了过去的5分钟。

做到这一点的最好方法是什么?

更清楚地说,这是我在ruby ->中所需要的。

代码语言:javascript
复制
updated_at < (Time.now - 5.minutes)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-31 18:35:13

您可以通过使用负值作为count参数的datetime_add/3来完成此操作:

代码语言:javascript
复制
from u in User,
  where: u.reset_password_sent_at > datetime_add(^Ecto.DateTime.utc, -5, "minute")

如果您需要在不使用查询的情况下执行此操作,则可以使用:calendar erlang模块中的函数:

代码语言:javascript
复制
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)
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32309217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档