выражения, включая функции для значений в типе интервала для postgres - PullRequest
0 голосов
/ 28 апреля 2020

Есть ли способ в postgres дБ. иметь выражение внутри типа интервала? Например, я могу выполнить запрос -

select (timestamp '1970-01-01 00:00:00' + interval '1 second' * J0.C3) from T637 J0

Теперь мне нужно иметь возможность динамически манипулировать значением «1 секунда», что означает «(1 + 2) секунды» для postgres сбой, вдоль с этим значением «значение порции», если оно получено через функцию, и вывод этой функции является целым числом, я не могу использовать эту функцию в интервале, например, в интервале func(args) seconds, как добиться такой динамики c «часть значения» для «интервала» в postgres дБ?

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Для такого типа «построения интервалов» make_interval () очень удобна:

make_interval(secs => (1 + 2) * some_column);
0 голосов
/ 28 апреля 2020

interval '(1+2) seconds' не является допустимым выражением. Тем не менее, interval '1 second' * 2 является действительным.

Таким образом, чтобы получить эквивалент '(m+n) seconds', обычно нужно сделать:

(interval '1 second' * m) + (interval '1 second' * n)

или

(m+n) * interval '1 second'

аналогично, если есть функция, которая возвращает значение цифры c, и мы хотим получить интервал этой величины (с единицами секунд), можно использовать следующее:

func(args) * (interval '1 second')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...