【问题标题】:ActiveRecord Displays Time as DateTime [duplicate]ActiveRecord 将时间显示为 DateTime [重复]
【发布时间】:2016-06-07 15:36:20
【问题描述】:

我有一个time 类型的数据库字段 该字段仅将时间存储在数据库中。 在 Rails 4.2 中使用 ActiveRecord 读取字段值时,我得到一个 dateTime 值。例如:

数据库中的08:30:00变成2000-01-01 08:30:00

这是 AR 的预期行为吗?

【问题讨论】:

  • 是的,但是您可以使用 strftime 方法来格式化日期。例如:Yourfield.strftime("%H:%M:%S")
  • 是的。数据库中有没有日期的时间。
  • @developer033 我确实使用 strftime,只是想确保这是预期的行为 @BroiSatse Postgres 确实有 time 类型

标签: ruby-on-rails activerecord


【解决方案1】:

数据库始终存储这些值。您可以使用 time.to_s(:db) 修改它。

this answer

【讨论】:

    【解决方案2】:

    MySQL 中没有数据格式可以只节省时间:它必须附加一个日期才能有用。

    如果您打算使用 HH:MM:SS 格式,

    请使用 strftime("HH:MM:SS")...

    等 rails 函数

    其他信息,例如: *to_time *to_date

    【讨论】:

      猜你喜欢
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2014-07-28
      • 2018-01-21
      • 2015-03-17
      相关资源
      最近更新 更多