[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
    17.772
    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: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.502
    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    17.772
    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: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.502
    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

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

  7. #7
    Registriert seit
    May 2002
    Beiträge
    1.061
    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

Ähnliche Themen

  1. SQL-Frage
    Von AK1 im Forum NEWSboard programmierung
    Antworten: 3
    Letzter Beitrag: 26-11-15, 11:21
  2. SQL Frage
    Von hgdieterle im Forum NEWSboard programmierung
    Antworten: 3
    Letzter Beitrag: 07-11-14, 07:59
  3. SQl Frage
    Von Franz.Rung im Forum System i Hauptforum
    Antworten: 1
    Letzter Beitrag: 09-10-14, 15:00
  4. SQL-Frage
    Von jgv im Forum NEWSboard programmierung
    Antworten: 3
    Letzter Beitrag: 06-11-13, 15:41
  5. SQL Frage
    Von Franz.Rung im Forum System i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-11-13, 16:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •