-
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');
-
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.
-
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
-
Liebe Birgitta,
warum hast du meine Antwort genommen und nur etwas ausführlicher wiederholt?
War mein Text nicht ausreichend erklärt?
-
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
-
Tut mir leid, dass ich fast 30 Minuten schneller war als du;-).
-
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
-
... 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
-
By AK1 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 26-11-15, 10:21
-
By hgdieterle in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 07-11-14, 06:59
-
By Franz.Rung in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 09-10-14, 14:00
-
By jgv in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 06-11-13, 14:41
-
By Franz.Rung in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-11-13, 15:32
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks