Согласно стандартному SQL вычитание 6 месяцев из 2018-05-31
приводит к 2017-11-31
, который явно не существует.
Интервальная арифметика не может использоваться для месяца / года (29 февраля), лучше использоватьADD_MONTHS
:
ADD_MONTHS(DATE '2018-05-31', -6)
Там также oADD_MONTHS
, который может вернуть другой результат для дат окончания месяца, например
ADD_MONTHS(DATE '2017-11-30', 6) -> 2018-05-30
oADD_MONTHS(DATE '2017-11-30', 6) -> 2018-05-31