2009-10-23 5 views
3

Beaucoup (la plupart presque tous?) Dialectes SQL ont une façon d'effectuer ce type de fonction: date_add (MaDate, MyInterval)fonctionnalité DATE_ADD dans Ingres

Je suis passé par tous les documents, mais je ne trouve pas cette fonctionnalité dans Ingres. Mon objectif immédiat est d'obtenir "MyDate plus 3 mois". Est-ce que quelqu'un sait s'il existe un moyen simple de faire cela que j'ai manqué?

Remarque: Je me rends compte que c'est possible pour y parvenir avec SQL existant. Mais il impliquera:

  • extrait le mois de ma date
  • ajouter 3 à ce numéro
  • extraire le jour et l'année de ma date
  • utiliser le nouveau jour, mois, année pour créer un nouvelle date
  • Mais je dois aussi tester pour voir si je traverse une frontière de l'année, donc il y aura une instruction CASE et

C'est énormément de SQL pour quelque chose C'est tellement simple dans Oracle, MySQL, PostgreSQL, SQL Server et tous les autres auxquels je peux penser. Cela me fait espérer que je suis en train de manquer une alternative beaucoup plus simple.

+0

Ckech ce lien: http://ariel.its.unimelb.edu.au/~yuan/Ingres/ us_13229.html Ils montrent quelques astuces en utilisant Ingres et la date. –

Répondre

5

Je n'ai pas de lien à portée de main. Recherchez dans votre documentation l'arithmétique des dates et/ou le type de données 'intervalle'.

Voici un exemple qui ne diffère pas à votre déclaration en anglais de ce que vous voulez:

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

Hourra! Je savais qu'il devrait y avoir une solution simple ... et c'est très simple. La chaîne précise à rechercher est "Date/Time Arithmetic" pour tous ceux qui en ont besoin. Je suppose que j'étais accroché à penser qu'il devait y avoir une fonction. – mdahlman