2012-02-27 3 views
0

사전 정의 된 교대를 일정표에 자동으로 삽입하는 기능을 설정하고 싶습니다. I가 각각 별개의 시프트 유형에 필요한 시작/종료 시간을 저장 shift_times라는 테이블을 만들었습니다 시작 시간과 종료 시간은 어떤 날짜에 특정 없기 때문에특정 날짜에 묶여 있지 않은 기간을 어떻게 나타내야합니까?

| start_time | lunch_start | lunch_end | end_time | 
| 8:30am  | 12:00pm  | 12:45pm | 4:30pm | 

을, 나는 최고의 데이터 유형에 대한 확신입니다 이 열에 사용하십시오.

내가 가지고 놀았던 한 가지 아이디어는 Double을 사용하고 있으며 소수점 뒤에 분을 저장합니다.

| start_time | lunch_start | lunch_end | end_time | 
| 8.5  | 12   | 12.75  | 16.5  | 

일정은 15 분 단위에서 독점적으로 작동을하기 때문에 소수는 아주 쉬운 형식과 변환 항상 가장 가까운 0.25 라운드, 그리고해야합니다 : 위의 표는 같을 것이다 (JSON으로 보내기 쉽다).

그러나 더 자세한 숫자 형식 (예 : 자정 이후 분 수) 또는 날짜 부분을 무시한 실제 날짜/시간 입력란을 사용하면 더 잘 처리 될지 잘 모르겠습니다.

답변

0

이러한 종류의 문제는 복식으로 사용하지 마십시오. 편리하다고 생각됩니다.

머니 값을 저장하는 데 double을 사용하지 않아야하는 이유를 살펴보십시오. 동일한 주장이 시대에 적용됩니다.

0000을 초과 한 정수를 제안하는 것이 좋습니다.

+0

감사합니다. 복식은 당황한 선택이었습니다. 그리고 몇 여분의 바이트뿐만 아니라. – Alex

0

오라클은 INTERVAL DAY TO SECOND 데이터 유형을 지원합니다. DB2와 같은 다른 일부는 암시적인 날짜 부분이없는 TIME 데이터 유형을 지원합니다.

둘 다 사용할 수없는 경우 개인적으로 자정 이후 초 또는 분을 사용하는 정수 형식을 사용하지만 분수 시간을 사용하는 정수 형식은 사용하지 않습니다.

0

SQl 서버에도 시간 데이터 유형이 있습니다.

관련 문제