我的数据库中有以下条目:
t.time :my_time_stamp
在我的控制器中,我像这样更新它:
model.update_attributes(:my_time_stamp => Time.now.utc)
我可以看到我正在写:
Mon 9 November, 8:54.54 UTC 2009
然而,当我稍后阅读这个值时,我得到了:
Sat Jan 01 08:54:54 UTC 2000
似乎已经存储了时间部分,但没有存储日期部分。我希望如此,因为它是一个时间字段,但是为什么我最终要存储和检索日期呢?我想我一定是在某种根本上误解了它的工作原理……我做错了什么?
我需要做的是计算自数据库更新以来的时间。有没有更简单的方法来做这件事?
谢谢!
发布于 2009-11-10 02:09:12
Ruby没有无日期的time对象,因此它将数据库中的无日期的时间字段转换为某个任意日期的时间。Ruby的Time对象编码了自unix时代以来的秒数,因此它们包含日期。将它们存储在数据库中的正确方法是使用datetime字段,或者如果您愿意,也可以使用整数字段并存储Time.now.to_i
。
发布于 2009-11-09 17:14:08
" time“字段仅存储时间。不是日期。
所以逻辑上你只能得到一个有效的时间,而不是一个有效的日期。
如果您希望将日期和时间存储在数据库中,则应进行以下迁移:
t.datetime :my_time_stamp
https://stackoverflow.com/questions/1699872
复制相似问题