Subtract column value from date in days or months I want to subtract the value in column lag_days from current_date.
Usually I would do current_date - interval '1 day'
I'm getting syntax error on the following example to subtract by days:
dkarchive=&gt; select current_date - interval lag_days day from example_tbl;
ERROR:  syntax error at or near &quot;day&quot;
LINE 1: select current_date - interval lag_days day from example_tb...
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.