Subtract column value from date in days or months
You don't need to use the interval syntax to begin with. You can simply subtract an integer from a date value, e.g. current_date - 1 is &quot;yesterday&quot;.
select current_date - lag_days
from the_table;

If you do want to use an interval, the make_interval() function is quite useful for this:
select current_date - make_interval(days =&gt; lag_days)
from the_table;

There is however a difference between the two queries: the first one returns a date value, the second one a timestamp value.