[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2001
    Beiträge
    68

    Question Frage zu NUM_DAYS=DAYS_BETWEEN // DAYS_TO_END_OF_MONTH

    Hallo, hab mal eine Frage zu den SQL-Funktionen NUM_DAYS=DAYS_BETWEEN bzw. DAYS_TO_END_OF_MONTH

    Was mach ich bei den Aufrufen falsch? Kann mir da einer einen Tip geben?

    D Tage S 5i 0 inz
    D NUM_DAYS S 5i 0 inz
    D Quartal S 2p 0 inz

    Hier funktioniert das. Der Rückgabewert sind ok
    when EntryParam = '04';
    C/EXEC SQL Set :WeekISO = WEEK_ISO(:MyDate)
    C/END-EXEC
    EntryRTC = WeekISO;

    when EntryParam = '05';
    C/EXEC SQL Set :Quartal = Quarter(:MyDate)
    C/END-EXEC
    EntryRTC = %editc(Quartal:'X');

    Hier funzt das nicht. Die Rückgabewerte sind bei beiden immer 0, egal wie ich das Datum hinändere?
    w

    when EntryParam = '06';
    C/EXEC SQL SET:NUM_DAYS=DAYS_BETWEEN(DATE '2018-01-01',DATE '2018-06-27')
    C/END-EXEC
    EntryRTC = %editc(NUM_DAYS:'X');

    when EntryParam = '07';
    C/EXEC SQL SET : Tage = DAYS_TO_END_OF_MONTH(DATE '2018-06-27')
    C/END-EXEC
    EntryRTC = %editc(Tage:'X');

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Werte mal den SQLCODE bzw. das Joblog aus.
    Nach SQL-V7R3 gibt es die Funktionen DAYS_BETWEEN und DAYS_TO_END_OF_MONTH gar nicht.

    Für DAYS_BETWEEN kannst du "Days(BisDateum) - Days(VonDatum)" verwenden.
    Für DAYS_TO_END_OF_MONTH kannst du "Last_Day(MyDate) - DayofMonth(MyDate)" verwenden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Hast Du den SQLCODE oder den SQLSTATE unmittelbar nach der Ausführung der Funktionen geprüft
    Vermutlich nicht, sonst hättest Du festgestellt, dass die Funktionen Days_Between und Days_To_End_Of_Month nicht in SQL bzw. in der Db2 for i vorhanden sind.
    Ausserdem verwendest Du eine Syntax, die in der Db2 for i nicht unterstützt wird Date '2018-06-27'. Korrekt müsste es heissen Date('2018-06-27').

    Um die Differenz in Tagen zwischen 2 Datums oder Zeitmarken-Werten in Tagen zu berechnen, musst du beide Werte mit Hilfe der Funktion DAYS in die rechnerische Anzahl Tage seit dem 01.01.0001 konvertieren und dann voneinander abziehen.

    Code:
    Exec SQL  Set :Num_Days = Days('2018-06-27') - Days('2018-01-01');
    Wenn Du den laufenden Tag im Jahr ermitteln willst, kannst Du auch die Funktion DAYOFYEAR verwenden.

    Um die Anzahl der Tage bis zum Monatsende zu berechnen musst Du mit der Funktione LAST_DAY das Monatsende ermitteln, das Ergebnis ebenfalls mit DAYS in die rechnerische Anzahl and Tagen seit dem 01.01.0001 konvertieren.

    Code:
    Exec SQL Set :NumDays = Days(Last_Day('2018-06-27')) - Days('2018-06-27');
    Die in Db2 for i unterstützen skalaren Funktionen sind unter dem folgenden Link aufgelistet und beschrieben:
    Db2 for i SQL scalar Functions

    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Liebe Birgitta,
    warum hast du meine Antwort genommen und nur etwas ausführlicher wiederholt?
    War mein Text nicht ausreichend erklärt?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Ganz einfach weil ich noch dabei war die Antwort aufzusetzen, während Du schon Datenfreigabe gedrückt hattest!
    ... und wie oft hast denn Du schon Antworten "hinterhergeplappert" und "ausführlicher" beschrieben, die andere bereits gegeben hatten. Da könnte ich Dir x Threads zeigen.
    Wenn Du nicht willst, dass ich in "Deinem" Forum antworte, lasse ich es gerne bleiben.
    Ich brauche dieses Forum nicht um micht zu profilieren.

    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

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Tut mir leid, dass ich fast 30 Minuten schneller war als du;-).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    May 2002
    Beiträge
    1.121
    Friede sei mit euch...

    Ging mir auch schon manchmal so. Man liest hier und fängt an zu antworten. Dann kommt Telefon, Kollegen, .....
    ...und schups sind 30 Minuten vergangen. Und man hat dann oft geantwortet, wo andere das dann schon getan haben.

    Sehen wir es hier in disem Fall so:
    eine Kurze Antwort für alle die da mit was anfangen können
    und eine etwas längere für alle die, wo sich nicht gleich alles erschlossen hat.

    Gruß
    Ronald

  8. #8
    Registriert seit
    Oct 2001
    Beiträge
    68
    ... und ich danke recht herzlich für die "lange ausführliche" Anwort!!!!!!!

    Die hat mir die Infos gegeben die ich gebraucht habe und mich in weiteren Punkten auch etwas weiter gebracht

Similar Threads

  1. SQL-Frage
    By AK1 in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 26-11-15, 11:21
  2. SQL Frage
    By hgdieterle in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 07-11-14, 07:59
  3. SQl Frage
    By Franz.Rung in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 09-10-14, 15:00
  4. SQL-Frage
    By jgv in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 06-11-13, 15:41
  5. SQL Frage
    By Franz.Rung in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-11-13, 16:32

Berechtigungen

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