我在使用Time.now时遇到问题。由于某种原因,当我将一个对象保存到数据库时,它保存了2000年的数据。我试图比较我保存在数据库中的对象Time.now,以检查它是否更大,但它总是返回因为2000年是虚假的。有人知道我可以解决这个问题的方法吗?Ruby on Rails Time.now
我只需要检查,确保了10分钟,过去了,因为我创建了一个对象时相比Time.now
我在使用Time.now时遇到问题。由于某种原因,当我将一个对象保存到数据库时,它保存了2000年的数据。我试图比较我保存在数据库中的对象Time.now,以检查它是否更大,但它总是返回因为2000年是虚假的。有人知道我可以解决这个问题的方法吗?Ruby on Rails Time.now
我只需要检查,确保了10分钟,过去了,因为我创建了一个对象时相比Time.now
这听起来像你的数据库列是time
型的,而不是datetime
或timestamp
。这只会存储时间,当它被转换为红宝石(支持日,月,年等)的Time
实例时,默认值用于日,月,年,这就是为什么你会看到2000年。
如果这是问题,您可能需要将数据库列更新为datetime
或timestamp
,因为它听起来像是您希望无论如何都需要日,月,年的部分时间。在这种情况下,你的比较将起作用。
是的,这听起来似乎合理。 – einarmagnus 2010-09-10 08:23:13
是的,该列是类型时间。我一直在尝试created_at部分,它仍然无法正常工作。 – Brian 2010-09-10 08:25:18
不确定你的意思。我没有提到created_at。 – Shadwell 2010-09-10 08:35:34
created_at < 10.minutes.ago
应该工作
这似乎并没有工作..如果我只是创建对象,类型1分钟前后2它仍然说真 – Brian 2010-09-10 08:05:37
尝试追加to_date,并看到它有助于'created_at <10.minutes.ago.to_date' – einarmagnus 2010-09-10 08:15:36
是你的数据库服务器与运行代码在同一台机器上? – einarmagnus 2010-09-10 08:16:30
您正在使用哪个数据库引擎? – 2010-09-10 08:18:02