关于ruby:如何只在数据库中存储时间?

How to store only the time in the database?

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

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

这是我的数据库架构,表计划中的tsrange数据类型(我应该使用哪个数据类型来替换它?).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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中日期/时间数据类型之间的差异时,这个问题确实帮助了我:

在RubyonRails中,日期时间、时间戳、时间和日期之间有什么区别?

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

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

这将需要一个日期/时间,并且只需将格式设置为小时/分钟/上午下午,不包括日期。