I have the following code:
x
WITH example_var AS
(SELECT 3)
SELECT current_date - interval '3 day'
How do I use example_var
in in the interval?
I’d like to do something like - interval CONCAT(example_var, 'day')
so that I could change what example_var
is equal to and therefore change the length of interval but that isn’t working.
Advertisement
Answer
If you want to create an interval from a constant value, you can use the make_interval()
function.
But you need to include example_var
in the FROM clause. But can’t refer to the actual value, you need to define a column alias for that as well.
WITH example_var (days) AS (
values (3)
)
SELECT current_date - make_interval(days => v.days)
from example_var v
For this specific example, you don’t need to use an interval. You can subtract an integer directly from a date.
WITH example_var (days) AS (
values (3)
)
SELECT current_date - v.days
from example_var v