【发布时间】:2017-12-24 18:40:11
【问题描述】:
我的表有 3 列:数据类型时间戳,
|created_At | final_time| duracion(difference between created at and final_time)
| | |
列差异应该保存小时和分钟的差异,格式为HH:MM
这是我的控制器:
def horario
horario.update(duracion: params[:duracion]) // this params is "00:59"
end
但是在 Horarios 表中,在 duracion 列中我有这个:
2017-12-24 03:59:00
所以我想保存 00:59(59 分钟),但 postgres 保存所有当前日期并增加 3 小时。 我想保存所以将来我将能够tu sum column duracion。或者我应该更改此列的数据类型?在这种情况下,您建议我使用哪种数据类型让 rails 保存 HH:MM??
谢谢。
【问题讨论】:
-
你应该把它保存为字符串
-
@Jax,以后可以对它们求和吗?作为字符串?
-
PostgreSQL 支持标准 sql 区间数据类型。 Rails 不支持吗?
-
不是,可以将字符串转换为时间进行进一步操作:
Time.parse("00:59") -
@MikeSherrill'CatRecall' 有部分支持,但由于 Ruby 中对无日期时间的支持有限,因此使用起来可能很麻烦。同样适用于标准 SQL
times。
标签: ruby-on-rails postgresql rails-activerecord timestamp-with-timezone