문제

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=> select current_date - interval lag_days day from example_tbl;
ERROR:  syntax error at or near "day"
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 "yesterday".

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 => 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top