2013-01-17 35 views
1

我使用的轨道3,我想START_TIME和END_TIME存储。由于rails不支持日期范围。如何仅在数据库中存储时间?

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

这是我的数据库架构与表调度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 
); 
+0

所以,你只是希望代表像“9:30”的值? – Larsenal

+0

是的,我希望能够在次比较。 – evanx

回答

6

时间数据类型可能是你要找的。

而且,这个问题真的帮了我,当我试图了解在轨日期/时间数据类型之间的差异:

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,而忽略了日期。

+1

但时间数据类型添加日期还,还是不? – evanx

+0

它会存储小时/分钟/秒的值。我也在上面编辑了我的问题。 – ply

相关问题