关于ruby:在Rails中保存到数据库时,时间属性会发生变化

Time attribute gets changed when saved to database in Rails

我有一个叫做事件的模型,它有一个时间属性。我将其设置为Time.now,并在保存之前将时间记录在对象上,如预期的那样,它是当前时间之后的一两秒。但一旦对象被保存并在数据库中找到,时间就不同了,日期部分是2000年1月1日。是什么造成的?我该怎么做才能确保我的时间正确保存?编辑:列类型为time,数据库为sqlite。


听起来您可能保存的是time对象,而不是date对象。

活动记录允许您使用timedatedatetime对象。

但是,如果您使用的是timedate对象,它们仍然是(不好的解释方式,请参阅下面的链接响应了解更多详细信息)完整的datetime对象。当你读到它们时,日期会出现在time对象上(通常是2000年1月1日)。

What can I do to make sure my times are saved correctly?

如果保存/读取完整的datetime对该字段很重要,则可以考虑将代表您的模型的迁移更改为使用:

1
object.datetime

. …而不是:

1
object.time

有关更多详细信息,请参阅此响应:https://stackoverflow.com/a/3929047/1026898