Эквивалентная функция для DATEADD() в Oracle

Мне нужно получить дату, которая составляет 6 месяцев с даты системы в Oracle.
И мне нужно получить ее, запустив открытый запрос из SQL. Функция DATEADD(MONTH,-6, GETDATE()) служит цели в SQL.

Имеет ли функция DATEADD(MONTH,-6, GETDATE()) в SQL функция equivalent в Oracle?

Ответ 1

Метод1: ADD_MONTHS

ADD_MONTHS(SYSDATE, -6)

Метод 2: Интервал

SYSDATE - interval '6' month

Примечание:  если вы хотите всегда выполнять операции с начала текущего месяца, TRUNC(SYSDATE,'MONTH') это даст. И он ожидает ввода типа Date в качестве входных данных.

Ответ 2

Эквивалент будет

ADD_MONTHS( SYSDATE, -6 )

Ответ 3

Не мой ответ:

Я не был слишком доволен ответами выше, и некоторые дополнительные поиски дали это:

SELECT SYSDATE AS current_date,

       SYSDATE + 1 AS plus_1_day,

       SYSDATE + 1/24 AS plus_1_hours,

       SYSDATE + 1/24/60 AS plus_1_minutes,

       SYSDATE + 1/24/60/60 AS plus_1_seconds

FROM   dual;

который я нашел очень полезным. Из http://sqlbisam.blogspot.com/2014/01/add-date-interval-to-date-or-dateadd.html