|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
Всем добрый день! Делаю запрос select daterange('2019-02-05','2019-02-05','[]') в соответствии с документацией должен вернуть [2019-02-05,2019-02-05] возвращает [2019-02-05,2019-02-06) подскажите каким способом можно получить интервал [2019-02-05,2019-02-05] ? мне это важно, потому что во всем приложении верняя граница определяется через upper(интервал), а переписывать кучу кода на анализ включения границы практически нереально ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 11:47 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
кхмм Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 12:01 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
дажы вот так: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 12:12 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
именно в этом и вопрос согласно документации select upper(daterange'[2019-02-05,2019-02-05]') должен возвратить верхнюю границу, т.е. 5 февраля а реально возвращает 6-е февраля, что неверно я к тому, что функция upper при таком поведении работает не логично в доке написано, что такое поведение является по умолчанию базовым, вопрос был в том - можно ли изменить такое поведение, чтобы движок PG не изменял верхнюю границу интервала и вхождение как ему захочется, а оставлял так как нужно разработчику? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 12:57 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
может быть можно создать свой тип, производный от daterange и там как то указать нужное поведение? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 12:59 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
graywolf_too, напротив всё логично для квантуемых значений иметь несколько типов рассечений (сечений с верхней или нижней гранью) -- избыточно. и соответственно задача покрываема одним типом полуоткрытого интервала. что и реализовано. для [условно]непрерывных -- 2 вида сечений -- неустранимая данность . и её надо описывать. т.е. типов интервалов становится немного больше. т.к. там полуоткрытый не описать закрытым со сдвигом на квант. напишите ф-ю маппер, и сделайте массовую замену. или перекройте встроенный аппер своим в путях поиска имен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 13:22 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
graywolf_too, поведение как раз по документации. Только у вас разный upper_inc() Создать свой тип можно, это postgresql. Любые развлечения с типами на вашу голову. За это преобразование отвечает canonical функция . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 13:24 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
qwwqgraywolf_too, напишите ф-ю маппер, и сделайте массовую замену. или перекройте встроенный аппер своим в путях поиска имен. нельзя немного подробнее, как перекрыть встроенный своим - ссылку какую-нибудь в каком разделе доки это почитать можно ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 15:53 |
|
как изменить поведение по умолчанию daterange
|
|||
---|---|---|---|
#18+
graywolf_too, RTFM "search_path " Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
но вам ведь надо наверное оба кейса -- открытый и закрытый верхний конец интервала -- т.ч. рисуйте свой интервал, рукопашный. текущий датарендж вам не подойдет.вот если его дополнить признаками инклюзивности концов . т.е. сделать композит. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 16:31 |
|
|
start [/forum/topic.php?fid=53&msg=39769613&tid=1995366]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 269ms |
total: | 397ms |
0 / 0 |