'dateadd in postgresSQL

I have this student_loan table and would like to know those that have finished early.

student-id, loan_amount, date_given, terms, last_paymnt
xxxx        xxxx         04/03/2010   36    08/09/2012
xxxx        xxxx         16/09/2011   45    13/12/2017

My logic is to grab to add the terms (currently integer) to the date_given as months to have a presumed finished date in a cte then grab another subtraction between that date and the given-date to have the result in months so I can the earlies and the lates.

I am trying the below but without success:

select date_given + interval 'terms month'
from Student_loan

How would I add that integer to the date and have a number of months or even subtract the two dates in my table and return a number of month?



Solution 1:[1]

You can use make_interval()

select date_given + make_interval(months => terms)
from student_loan

Alternatively multiply a one month interval with the value of the column:

select date_given + terms * interval '1 month'
from student_loan

or even subtract the two dates in my table and return a number of month?

Just subtract them, the result of that is the number of days as both columns are (or at least seem to be) date values:

select last_paymnt - date_given as num_days
from student_loan

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 a_horse_with_no_name