Frage

Ich habe ein Datumfeld

DATE = 10/10/2010

sum = 4 (dies sind die Anzahl der Jahre durch Berechnung)

Gibt es eine Möglichkeit, vier Jahre bis 10.10.2010 hinzuzufügen und 10/10/2014 zu machen?

War es hilfreich?

Lösung

Fügen Sie stattdessen Monate (12 * Anzahl von Jahren) hinzu. So was-

add_months(date'2010-10-10', 48)

Andere Tipps

Verwenden add_months

Beispiel:

SELECT add_months( to_date('10-OCT-2010'), 48 ) FROM DUAL;

Warnung
add_months, gibt den letzten Tag des resultierenden Monats zurück, wenn Sie den letzten Tag eines Monats von Anfang an eingeben.

So add_months(to_date('28-feb-2011'),12) wird als Ergebnis 29-Feb-2012 zurückgeben.

Ich glaube, Sie könnten das benutzen ADD_MONTHS() Funktion. 4 Jahre sind 48 Monate, also:

add_months(DATE,48)

Hier finden Sie einige Informationen zur Verwendung der Funktion:

http://www.techonthenet.com/oracle/functions/add_months.php

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::p11_question_id:1157035034361

Ich bin mir nicht sicher, wenn ich Ihre Frage richtig verstanden habe, aber

select add_months(someDate, numberOfYears * 12) from dual

könnte den Trick machen

Sie können dies versuchen:

someDate + interval '4' year

INTERVALL

Eine weitere Option, abgesehen von add_months

SELECT
      SYSDATE,
      SYSDATE
      + TO_YMINTERVAL ( '1-0' )
FROM
      DUAL;


SYSDATE   SYSDATE+TO_YMINTERVAL('1-0')
--------- ----------------------------
29-OCT-13 29-OCT-14                   
1 row selected.


SELECT
      SYSDATE,
      SYSDATE
      + TO_YMINTERVAL ( '2-0' )
FROM
      DUAL;


SYSDATE   SYSDATE+TO_YMINTERVAL('2-0')
--------- ----------------------------
29-OCT-13 29-OCT-15                   
1 row selected.

SELECT
      TO_DATE ( '29-FEB-2004',
              'DD-MON-YYYY' )
      + TO_YMINTERVAL ( '1-0' )
FROM
      DUAL

   *
Error at line 4

ORA-01839: date not valid for month specified

Aber der letzte ist illegal, da es keinen 29. Februar 2005 gibt, daher scheitert er in Fällen von Schaltjahr (29. Februar).

Lies das Dokumentation für das Selbe

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top