在mysql数据库中添加分钟并将其与time.now进行比较

在mysql数据库中添加分钟并将其与time.now进行比较,mysql,ruby-on-rails,ruby,Mysql,Ruby On Rails,Ruby,我们如何从mysql数据库中增加几分钟的时间,并将其与time.now进行比较 这是工作代码 user.update_all(last_failed_attempt_time: Time.now.to_s) #setting the time # some logic time = user[0].last_failed_attempt_time #from the User model time.to_i < Time.now.to_i #This works correctly

我们如何从mysql数据库中增加几分钟的时间,并将其与time.now进行比较

这是工作代码

user.update_all(last_failed_attempt_time: Time.now.to_s) #setting the time
# some logic

time = user[0].last_failed_attempt_time #from the User model

time.to_i < Time.now.to_i #This works correctly
user.update\u all(上次\u尝试失败\u时间:time.now.to_s)#设置时间
#一些逻辑
时间=用户[0]。上次尝试用户模型时失败
time.to_i
上面的比较是正确的,但是如果我在来自数据库的时间上加上10分钟,条件检查就不能正常工作

user.update_all(last_failed_attempt_time: Time.now.to_s) #setting the time
# some logic

time = user[0].last_failed_attempt_time + 10.minutes #adding 10 minutes

time.to_i < Time.now.to_i # This should not let the control flow through it, but it is
user.update\u all(上次\u尝试失败\u时间:time.now.to_s)#设置时间
#一些逻辑
时间=用户[0]。上次尝试失败时间+10.5分钟添加10分钟
time.to_i

我在比较不同的物体吗?Rails没有给我任何错误。

它们是不同类型的 您可以这样做:


用户[0]。上次\u尝试\u失败\u时间-时间。现在>10.5分钟

又是什么问题?-Time.now被插入到数据库中-Time.now从数据库中获取,10分钟被添加到其中-与时间(从db)和当前时间(Time.now)的比较不正常。对象类型可能错误?上次失败的MySQL格式是什么?如果您的迁移将列声明为
:time
类型而不是
:datetime
类型,您将遇到问题。数据库中存储的
:time
类型仅为一天中的某个时间(未附加日期信息)。如果打开数据库控制台并运行直接查询,您应该能够看到这一点。当Rails检索该值时,它将其转换为Ruby
Time
类的对象,并为其提供日期
2000-01-01
(因为Ruby
Time
包含日期)。但是,当您使用Time.now时,它附带了当前日期(我认为这就是您在本例中想要的)。因此,
time.to\u i
总是小于
time.now.to\u i
(可能需要
.reload
)。