[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    2.044

    Mit datumsfunktionen rechen

    Hi, *all

    ich bekomme folgenden ausdruck nicht umgewandelt (V5R4)
    Code:
        EVAL      Jm12pM = %YEARS((%DATE() - %MONTHS(1)))*12 
                           + %MONTHS((%DATE() - %MONTHS(1)))
    Es soll das Jahr des Vormonats mit 12 multipliziert werden und anschl. die Anzahl Vormonate addiert

    Bsp: Heute = 17.05.2010 --> 10 * 12 + 4
    15.01.2010--> 09 * 12 + 12

    Fehlermeldung
    Der Parameter für die integrierte Funktion für die Dauer ist ungültig.

    wo hängt der Hammer?
    Danke
    Robi

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    %MONTHS() und %YEARS() können soweit ich weiß nicht den Monat bzw. das Jahr eines Datums ermitteln sondern nur eine Zahl in die entsprechende Anzahl Monate bzw. Jahre umwandeln.

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Jm12pM = %subdt((%DATE() - %MONTHS(1)):*YEAR)*12
    + %subdt((%DATE() - %MONTHS(1):*MONTH));
    wenn ich mich jetzt nicht mit den Klammern verzählt habe

    D*B
    Zitat Zitat von Robi Beitrag anzeigen
    Hi, *all

    ich bekomme folgenden ausdruck nicht umgewandelt (V5R4)
    Code:
        EVAL      Jm12pM = %YEARS((%DATE() - %MONTHS(1)))*12 
                           + %MONTHS((%DATE() - %MONTHS(1)))
    Es soll das Jahr des Vormonats mit 12 multipliziert werden und anschl. die Anzahl Vormonate addiert

    Bsp: Heute = 17.05.2010 --> 10 * 12 + 4
    15.01.2010--> 09 * 12 + 12

    Fehlermeldung
    Der Parameter für die integrierte Funktion für die Dauer ist ungültig.

    wo hängt der Hammer?
    Danke
    Robi
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    2.044

    Du hast dich verzählt

    @Dieter
    Du hast dich verzählt!
    und bei mir will er statt *YEAR / *MONTH im 2. Wert von %subdt nur *Y / *M

    der Rest hat funktioniert
    DANKE

    @Pikachu

    so hab ich es mal gelesen :
    %Months Retrieve months from formatted date
    dann hätte es gehen müssen

    aber ... ich hab ja ne Lösung (dank Dieter)
    schönes WE
    Gruß
    Robi

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    bei mir will er statt *YEAR / *MONTH im 2. Wert von %subdt nur *Y / *M
    Manchmal ist er halt kleinlich, wenn man ausschreibt, muss man den Plural also *YEARS oder *MONTHS nehmen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •