DATE_ADD функциональность в Ingres - PullRequest
4 голосов
/ 24 октября 2009

Многие (почти «почти все») диалекты SQL имеют способ выполнять функции такого типа: date_add (MyDate, MyInterval)

Я просмотрел все документы, но не могу найти эту функцию в Ingres. Моя ближайшая цель - получить «MyDate плюс 3 месяца». Кто-нибудь знает, есть ли простой способ сделать это, что мне не хватает?

Примечание: я понимаю, что возможно достичь этого с помощью существующего SQL. Но это будет включать в себя:

  • извлеки месяц из моей даты
  • добавить 3 к этому номеру
  • извлеки день и год из моей даты
  • используйте новый день, месяц, год для создания новой даты
  • Но мне также нужно проверить, пересекаю ли я годичные границы, поэтому будет и заявление CASE

Это очень много SQL для чего-то такого простого в Oracle, MySQL, PostgreSQL, SQL Server и всех других, которые я могу придумать. Я надеюсь, что мне почему-то не хватает гораздо более простой альтернативы.

1 Ответ

6 голосов
/ 24 октября 2009

У меня нет ссылки на руки. Найдите в своей документации «арифметику дат» и / или тип данных «интервал».

Вот пример, который не похож на ваше английское изложение того, что вы хотите:

DATE('23-oct-09') + '3 months'
...