[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309

    embedded SQL in RPG

    Brauche Hilfe

    Habe im Rpg (nicht ILE) ein 8 ste. nummerisches Feld welches
    ein Datum beinhaltet z.B. "03082006"

    wie kann ich mit embedded SQL daraus die Kalenderwoche
    berechnen?

    (wie gesagt, nicht ILE, da funkt's)

  2. #2
    Registriert seit
    Jan 2002
    Beiträge
    53
    Datum in ein Datumsformat bringen.

    (TT.MM.JHJJ) z. B. mit %SUBST-Funktion

    Dann: Select WEEK('TT.MM.JHJJ') from xxxx

    MfG

    Klaus

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    309
    kann keine bif's benutzen, da das Pgm kein ILE-Pgm ist sondern leider noch ein RPG-Pgm.

    (dieses kann leider aus bestimmten Gründen auch nicht auf ILE-Umgestellt werdern!)

  4. #4
    Registriert seit
    Jan 2002
    Beiträge
    53
    Wie wär's damit?

    select week(substr(25102006, 1, 2)||'.'||
    substr(25102006, 3, 2)||'.'||
    substr(25102006, 5, 4))
    from sysibm/sysdummy1

  5. #5
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hello,

    coole Sach.
    Den Sysdummy1 habe ich bisher noch nie beachtet.

    Soweit funzt das ja gut, nur ist das doch week und nicht week_iso?

    Ich sag nur 4.1.1970 oder 29.12.2003!

    k.

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Achtung!

    Die Skalare Funktion WEEK ermittelt nicht die Kalenderwoche nach ISO, sondern setzt mit dem ersten Januar als erstem Tag des Jahres in Kalenderwoche 1 auf und Sonntag ist der erste Tag der Woche!

    Die Definition der Kalenderwoche nach ISO ist wie folgt:
    1. Die Kalenderwoche beginnt immer mit einem Montag
    2. Die erste Kalenderwoche muss immer mindestens 4 Tage des neuen Jahres beinhalten.
    --> der 4. Januar ist immer in KW1 oder der erste Donnerstag des Jahres ist in KW1

    Um die Kalenderwoche nach ISO zu berechnen muss die skalare Funktion WEEK_ISO verwendet werden.

    Ausserdem ist es nicht zwingend notwendig auf eine Datei zuzugreifen. Mit einem einfachen SET-Statement kann man skalare Funktionen ausführen, ohne Datei-Zugriff

    In embedded SQL mit numerischem Datum kann die KW wie folgt ermittelt werden:
    PHP-Code:
    C/EXEC SQL  
    C
    Set :KW Week_Iso((Substr(Digits(:DatNum), 54concat '-' concat   
    C
    +                     Substr(Digits(:DatNum), 32concat '-' concat   
    C
    +                     Substr(Digits(:DatNum), 12)))
    C/END-EXEC 
    Übrigens in der iNN - eNews 7/2006 hatten wir unter Tekki-Corner einen Artikel zu genau diesem Thema.
    (Leider ist diese iNN - eNews z.Z. nicht online, da wir sie gestern Abend durch die August-Ausgabe ersetzt haben)

    Aber bei Intresse einfach nachschauen unter:
    www.iNN-online.de

    Birgitta
    Birgitta Hauser

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

Similar Threads

  1. RPG mit Embedded SQL, JOIN ..
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 18-06-06, 13:14
  2. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43
  3. Embedded SQL in RPG
    By lossin in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 23-08-05, 13:00
  4. embedded SQL in ILE RPG, UPDATE
    By Zupfl50 in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 06-10-04, 22:04
  5. EMBEDDED SQL in RPG
    By Ludger Muhmann in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-07-02, 10:49

Berechtigungen

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