이 게시물에 대한 SQL 바이올린을 만들었습니다 http://sqlfiddle.com/#!15/7b5d7/1/0왜 daterange에 대한 postgres의 상위 범위 함수가 배타적 범위를 반환합니까?
질문 # 1
왜 배타적 경계가 실제로 포함 하한과 함께 범위를 저장할 수있는 daterange
와 기록을 삽입하지 독점 상한? pg가 둘 모두를 포괄적 인 범위로 저장하지 않는 이유는 무엇입니까?
질문 # 2
SELECT upper('[2016-06-19, 2016-06-21)'::daterange)
반환 2016-06-21
. [
은 포괄적 인 하한을 의미하고 )
은 상한 상한을 의미합니다.
상한 금액을 선택하지 않아야합니다. 2016-06-20
? 날짜에 별개의 간격이 있습니까?
이것이 구현 방법입니다. [매뉴얼에서] (https://www.postgresql.org/docs/current/static/rangetypes.html # RANGETYPES-DISCRETE) : "내장 범위 형식 int4range, int8range 및 daterange는 모두 하한을 포함하고 상한을 제외하는 정규 형식을 사용합니다 (즉,'[)'* 'And'[2016 -06-19, 2016-06-21)은'[2016-06-19, 2016-06-20]' –
과 정확히 같은 범위입니다. 질문 2 번에 대해서는 수동으로 datananges가 분리되어 있습니다. 2016-06-21 대신'2016-06-20'을 반환해야하지 않을까요? –