Вызов функции, которой присвоено числовое значение для запроса

#postgresql #function

#postgresql #функция

Вопрос:

Здесь вместо использования интервала в 7 дней я хочу использовать days_gap функцию и передавать numeric ей значение вместо жестко заданного значения. А затем непосредственно вызовите его в SELECT функции

 SELECT BOO_NUMBER,
      ROO_NUMBER
    FROM BOO B
    WHERE B.FOO < CURRENT_TIMESTAP - '7 days'::interval
 

Вместо использования '7 days'::interval я хочу использовать функцию days_gap , которая принимает числовое значение в функции и может вызываться соответственно вместо интервала в 7 дней.

Пожалуйста, помогите мне с кодом функции, который будет вызываться в запросе select.

Заранее спасибо!

Ответ №1:

Это должно сделать:

 SELECT BOO_NUMBER,
      ROO_NUMBER
    FROM BOO B
    WHERE B.FOO < CURRENT_TIMESTAP - interval '1 day' * days_gap()
 

Комментарии:

1. Мне нужен код, для days_gap() которого требуется число.

Ответ №2:

Вы ищете make_interval() ?

 SELECT boo_number,
       roo_number
FROM boo b
WHERE b.foo < current_timestap - make_interval(days => 7);
 

Обратите внимание, что вы всегда можете умножить интервал в один день на желаемое количество дней:

interval '1 day' * 7 это то же самое, что interval '7 day'