2017-03-01 66 views

回答

2

Ruby中没有时间类或Rails所以ActiveRecord代表time列与日期时间/时间戳记类。

如果您查看数据库内部没有任何ActiveRecord,Rails或Ruby噪声,您将看到HH:MM:SS时间值。但是,当ActiveRecord将time拉出数据库时,它将日期组件设置为2000-01-01,因为日期时间必须有日期并且AR选择该日期。

任何时候在Ruby中使用start_hour时,都必须忽略日期组件。

+0

谢谢。为什么选择“1/1/2000”而不是1970年的基准时间。这里有什么原因。谢谢。 –

+0

因为大多数Rails开发者在1970年都没有活着?说真的,可能没有什么特别的原因,他们只需要一个日期和2000-01-01看起来不错。 –

-1

存储在数据库中的格式之间的差别与Rails无关,与您的数据库有关的所有内容都无关。日期或时间格式在您的应用程序中仅“有效”,而不在数据库中 - 更简单地说,它们只负责将时间对象显示给用户,并且不会影响数据存储方式。您最好的选择是将记录保存为时间对象,然后使用Rails助手以strptime等方法以有意义的方式向用户展示数据。

+0

数据库有'时间'数据类型。这意味着时间不仅仅是应用程序的数据类型。 –