2009-10-23 2 views
3

Многие (большинство почти все?) SQL диалектов есть способ выполнить этот тип функции: DATE_ADD (MyDate, MyInterval)функциональность DATE_ADD в Ingres

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

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

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

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

+0

Ckech эта ссылка: http://ariel.its.unimelb.edu.au/~yuan/Ingres/ us_13229.html Они показывают некоторые трюки, используя Ingres и дату. –

ответ

5

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

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

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

Ура! Я знал, что должно быть простое решение ... и это очень просто. Точной строкой для поиска является «Арифметика даты/времени» для всех, кто в ней нуждается. Наверное, меня повесили на мысль, что должна быть функция. – mdahlman