Мне нужно получить дату, которая составляет 6 месяцев с даты системы в Oracle.
И мне нужно получить ее, запустив открытый запрос из SQL. Функция DATEADD(MONTH,-6, GETDATE())
служит цели в SQL.
Имеет ли функция DATEADD(MONTH,-6, GETDATE())
в SQL функция equivalent
в Oracle?
Эквивалентная функция для DATEADD() в 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