Rails一直很好,可以在MySql中自动插入格式正确的日期时间,而无需我多考虑。
但是,为了进行验证,我需要检查存储的mysql日期时间值(即2008-07-02 18:00:00)是否大于或小于“now”。我可以调用DateTime.now
或Time.now
但是如何将其转换为mysql喜欢的格式?
由于
答案 0 :(得分:87)
您可以使用to_s(:db)
转换为数据库友好格式。
Time.now.to_s(:db)
但是,如果在Rails中指定了时区,请小心,因为时间将以UTC格式存储在数据库中。您需要指定进行适当的比较。
Time.now.utc.to_s(:db)
您也可以在MySQL中使用NOW()
函数,而不是在Ruby中生成当前时间。
答案 1 :(得分:5)
你不需要。让Rails为你工作:
如果您的模型是Widget
,则会找到最后一天创建的所有小部件:
Thing.find(:all, :condition => ["created_at > ?", Time.now - 1.day])
Rails会自动将时间戳转换为正确的格式。