Frage

Ich habe Syntax wie verwendet {?EndDate} - INTERVAL '1' YEAR Für eine Weile, und ich wusste, dass es ein Problem gab, das ich irgendwann treffen würde, und ich habe es einfach getroffen. Ich habe versucht zu tun DATE '2010-12-31' - INTERVAL '6' MONTH, und es erstickt, weil es keinen 31. Juni gibt. Was ist der effizienteste und konsequenteste Weg, dies zu codieren? Bei der Aufspürung der Person, die die Entscheidung getroffen hat, dies auf diese Weise zu tun, wäre es unpraktisch. :-)

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob es ein gibt konstistisch Way, da es sicherlich davon abhängt, was jemand denkt, ist 6 Monate. Doch imho ist es sicher anzunehmen, dass das add_months ist ein Standardweg (zumindest in Oracle), um Monate zu subtrahieren oder hinzuzufügen:

select add_months(DATE '2010-12-31',-6)  from dual;

Dieser Ausdruck kehrt am 30. Juni 2010 zurück (der letzte Tag in diesem Monat (wie der 31. im Dezember).

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