Ошибка Teradata 2665: неверная дата - PullRequest
0 голосов
/ 01 июня 2018

Я выдаю следующий SELECT для SQLA (версия Teradata: 15.10.01.11):

select cast('2018-05-31' as date format 'yyyy-mm-dd') - interval '6' month;

И я получаю: SELECT Failed.2665: неверная дата.Любая помощь будет высоко ценится.

Br,

Shardul

1 Ответ

0 голосов
/ 01 июня 2018

Согласно стандартному 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
...