2017-12-16 21 views
1

나는 PostgreSQL 10을 사용하고 있으며 documentationdate 유형에는 분당 4713의 범위가 있음을 알 수 있습니다. 5000BC와 같이 더 낮은 분도 사용할 수있는 방법이 있습니까? 아니면 내 솔루션을 생각해 내야합니까?PostgreSQL 10의 기본 기간 범위가 더 넓습니까?

+2

아마도 헌터 - 수집가 고객 세부 정보를 저장하려고합니다. –

+1

예 - 자신 만의 해결책을 찾아야합니다. int의 텍스트에 날짜를 저장하는 것만 큼 못 생겨서 모든 수학을 스스로 수행합니다. 두려워요. 그러나 정말로 - 당신이 저장하고 싶은 정확한 날짜는 무엇입니까? .. –

+0

@ VaoTsun 그것은 문화적/역사적 프로젝트에 관한 것이므로 고대 시대와 날짜를 정의해야합니다. 나는 수년에 걸쳐 정확한 것을 찾습니다. 단지 5000BC처럼 고대 시대를 저장하는 것은 괜찮을 것이지만, 이것 역시'date' 타입을 요구할 것입니다. 이것이 제가 4713으로 멈출 수없는 이유입니다. 5000BC에서 전투가 일어난다면 어떻게 될까요? 역사가가 5000BC를 삽입하고 오류가 발생한다고 상상해보십시오! – slevin

답변

1

날짜를 두 개의 필드로 저장하는 등 맞춤 솔루션을 만들어야합니다. date 및 추가 smallint 오프셋.

아마도 더 깨끗한 방법은 내부적으로 더 최근 값의 경우 date을 사용하고 이전 날짜의 경우 smallint을 사용하는 자체 데이터 유형을 정의하는 것일 수 있습니다. 이 유형에서 고유 한 연산자 세트를 정의하고 일반 날짜처럼 사용할 수 있습니다.

+0

예, 저는 똑같은 생각을하고있었습니다. 모든 날짜를 기본 AC로 저장하고 부울 (0, BC/1, AC)이있는 경우 그에 따라 날짜를 저장하거나 렌더링 할 수 있습니까? "문제"는 BC에서 세기를 추출하려는 경우 UI로 다시 렌더링하기 전에 (-1)해야합니다. 그것이 가능하거나 실행 가능하다고 생각하십니까? – slevin

+0

가능하지만 기업 전체가 많은 질문을 제기합니다. 기원전 200 년 2 월에 28 일 또는 29 일이 있었습니까? 이런 질문에 빠지면 BC 4000 년 전에 날짜를 저장하는 아이디어를 포기할 것입니다. 어쩌면 당신은 당신 자신의 데이터 유형을 정의해야 할 것입니다 - 나는 대답을 업데이트 할 것입니다. –

+0

예, 당신 말이 맞습니다. 나는 가장 간단한 해결책을 찾을 것이라고 생각한다. 몇 년 동안'int' 범위와'int' 범위를 포함하는 시대를위한 "eraBC"테이블을 가지고 있습니다. 사용자는 BC 년 동안'int'를 삽입 할 것이고 thats that ... – slevin