2013-01-17 2 views
1

레일 3을 사용하고 있습니다. start_time과 end_time을 저장하고 싶습니다. 레일은 날짜 범위를 지원하지 않으므로데이터베이스에 시간 만 저장하는 방법은 무엇입니까?

나중에 비교할 날짜가없는 시간을 저장하려면 데이터 형식을 사용해야합니까?

이것은 테이블 일정의 데이터 유형이 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 am"과 같은 값을 나타 내기를 원하십니까? – Larsenal

+0

예, 시간을 비교할 수 있기를 원합니다. – evanx

답변

6

아마도 : time 데이터 유형은 사용자가 찾고있는 데이터 유형입니다.

또한,이 질문은 정말 레일에서 날짜/시간 데이터 유형 사이의 차이점에 대해 배우려고 할 때 나에게 도움이 :

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

또한 날짜 시간 데이터 유형을 사용하는 것을 고려하고 간단하게 사용하여 변환한다 의 strftime, 예를 들어,이시시/분/AM 날짜/시간 링크를 단순히 형식을 취할 것

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

| 날짜를 떠나, PM.

+1

하지만 시간 데이터 유형도 날짜를 추가할까요, 아니요? – evanx

+0

시/분/초 값을 저장합니다. 위의 질문도 수정했습니다. – ply

관련 문제