ruby - 如何只将时间存储在数据库中?

标签 ruby ruby-on-rails-3 postgresql-9.1

我正在使用 Rails 3,我想存储开始时间和结束时间。由于 Rails 不支持日期范围。

我应该使用哪种数据类型来存储没有日期的时间以便稍后进行比较?

这是我的数据库架构,在表 Schedules 中包含 tsrange 数据类型(我应该使用哪种数据类型来替换它?)。

CREATE TABLE Doctors
(
id INTEGER UNIQUE,
name VARCHAR(size)
);

CREATE TABLE Schedules
(
id INTEGER,
doctor_id INTEGER,
start_time tsrange,
end_time tsrange,
day VARCHAR(size)
);

CREATE TABLE Appointments
(
id INTEGER,
doctor_id INTEGER,
aday DATE
);

最佳答案

:time 数据类型可能就是您正在寻找的。

此外,当我试图了解 rails 中日期/时间数据类型之间的差异时,这个问题确实对我有帮助:

In Ruby on Rails, what's the difference between DateTime, Timestamp, Time and Date?

您还应该考虑使用 datetime 数据类型,并使用 strftime 简单地转换它,例如

 t = Time.now
 t.strftime("%I:%M%p")

这将需要一个日期/时间并简单地格式化为小时/分钟/AM|PM,省略日期。

关于ruby - 如何只将时间存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14386454/

相关文章:

postgresql - 如果排序规则不存在,则将其添加到 postgresql

ruby HttpClient 库在响应持久连接后关闭套接字?

ruby - 配置 Apache Tomcat 以将请求转发到 Mongrel

ruby-on-rails - 如何从字符串中去除非字母数字字符并保留空格?

ruby-on-rails-3 - 从引擎控制路线加载顺序

postgresql-9.1 - POSTGRES 错误 : could not load library

postgresql - 如何从另一个 php 文件使用 PostgreSql 的 CURRVAL/RETURNING?

ruby-on-rails - RVM 不使用 cron 设置环境

ruby-on-rails - 为什么 rspec 中的实例变量为零?

ruby-on-rails - 如何不要求 application.css.scss 两次?