Datum berechnen

Hallo

ich habe da mal eine frage zu der Datumsberechnung.
und zwar habe ich eine datenbank in der Messpunkte gespeichert sind mit einer tabelle der messwerte, eine mit den punkten und eine tabelle mit den messzyklen. in der abfrage die ich jetzt erstellen will soll jeweils ein datum erscheinen wann der messpunkt das nächste mal gemessen werden soll.
es gibt so zyklen wie jährlich halbjährlich usw… dabei habe ich dann werte wie 1, 0.5 usw in der tabelle stehen.
wie bekomme ich jetzt das datum raus wenn ich das letzte gespeicherte datum nehme und dann diese jahres angabe dazuaddiere?
mit

max(datum)+365 as next

bekommt man das datum in einem jahr aber wie geht es wenn man 0.5 jahre hat? bei

max(b.datum)+365*0.5 as next

kommt bei mir ein fehler

kann mir einer helfen?

okay… ich habs erstmal so gelöst:

 max(b.datum)+cast(ROUND (cast(365.25*c.jahre as numeric),0) as integer) as next

das sieht zwar nicht schön aus aber es funktioniert.
wenn jemand eine schönere idee hat nur her damit :smiley:

Nimm ein Interval:

max(datum) + interval '6' month
max(datum) + interval '1' year
max(datum) + interval '42' day

Wenn das mit einem Feld in der Tabelle gemacht werden soll, kannst Du das mit der entsprechenden Einheit verknüpfen:

max(datum) + (c.jahre * interval '1' year)

Abgesehen davon wäre es außerdem sehr praktisch, wenn du uns auch an deinem Fehler teilhaben lässt :wink: