Anmelden

View Full Version : Datumsproblem



Seiten : 1 [2]

muadeep
27-10-06, 10:18
hab mir die SQL-Fehlermeldung SQL0187 (WRKMSGF QSQLMSG) mal etwas genauer angeschaut:


System: BHSWHR
Nachrichten-ID . . . . . . . : SQL0187
Nachrichtendatei . . . . . . : QSQLMSG
Bibliothek . . . . . . . . : QSYS

Nachricht . . . : Verwendung der gekennzeichneten Dauer ungültig.
Ursache . . . . : Einer der folgenden Fehler trat auf:
-- Eine gekennzeichnete Dauer ist angegeben, ist aber nicht der Operand
des Additions- oder Subtraktionsoperators.
-- Eine gekennzeichnete Dauer von Jahren, Monaten oder Tagen ist als
Additions- oder Subtraktionsoperand angegeben, der andere Operand ist jedoch
kein Datum und keine Zeitmarke.
-- Eine gekennzeichnete Dauer von Mikrosekunden ist als Additions- oder
Subtraktionsoperand angegeben, der andere Operand ist jedoch keine Uhrzeit
und keine Zeitmarke.
-- Eine gekennzeichnete Dauer von Stunden Minuten oder Sekunden ist als
Additions- oder Subtraktionsoperand angegeben, der andere Operand ist jedoch
keine Zeitmarke.
-- Eine gekennzeichnete Dauer ist als linker Operand einer Subtraktion
angegeben.
-- Der für die gekennzeichnete Dauer angegebene Wert ist nicht numerisch.
Fehlerbeseitigung: Verwendung der gekennzeichneten Dauer korrigieren. Die
Anforderung wiederholen.

Kann es sein, daß das SQL-Statmant (Addition von 1 Tag) in einem SQLRPG womöglich gar nicht funkt?

BenderD
27-10-06, 10:21
Hallo,

hättest dir mal besser die Postings von Baldur oder Kampi4 ansehen sollen

C/EXEC SQL
C+ SET :NEWDAT = :MYDATE + 1 DAYS
C/END-EXEC

Dieter Bender,

der auch froh ist, dass heute Freitag ist

edit: und jetzt das DAYS gesehen hat



hab mir die SQL-Fehlermeldung SQL0187 (WRKMSGF QSQLMSG) mal etwas genauer angeschaut:


System: BHSWHR
Nachrichten-ID . . . . . . . : SQL0187
Nachrichtendatei . . . . . . : QSQLMSG
Bibliothek . . . . . . . . : QSYS

Nachricht . . . : Verwendung der gekennzeichneten Dauer ungültig.
Ursache . . . . : Einer der folgenden Fehler trat auf:
-- Eine gekennzeichnete Dauer ist angegeben, ist aber nicht der Operand
des Additions- oder Subtraktionsoperators.
-- Eine gekennzeichnete Dauer von Jahren, Monaten oder Tagen ist als
Additions- oder Subtraktionsoperand angegeben, der andere Operand ist jedoch
kein Datum und keine Zeitmarke.
-- Eine gekennzeichnete Dauer von Mikrosekunden ist als Additions- oder
Subtraktionsoperand angegeben, der andere Operand ist jedoch keine Uhrzeit
und keine Zeitmarke.
-- Eine gekennzeichnete Dauer von Stunden Minuten oder Sekunden ist als
Additions- oder Subtraktionsoperand angegeben, der andere Operand ist jedoch
keine Zeitmarke.
-- Eine gekennzeichnete Dauer ist als linker Operand einer Subtraktion
angegeben.
-- Der für die gekennzeichnete Dauer angegebene Wert ist nicht numerisch.
Fehlerbeseitigung: Verwendung der gekennzeichneten Dauer korrigieren. Die
Anforderung wiederholen.

Kann es sein, daß das SQL-Statmant (Addition von 1 Tag) in einem SQLRPG womöglich gar nicht funkt?

muadeep
27-10-06, 11:01
die Posting der beiden (Baldur & Kampi4) habe ich gelesen und das Statment wurde auch korrigiert! :-)


C/EXEC SQL
C+ SET :NEWDAT = :MYDATE + 1 DAYS
C/END-EXEC


sorry,
aber die obige Fehlermeldung "SQL0187" kommt nach der Korrektur!

Fuerchau
27-10-06, 11:35
Da RPG den Datentyp DATE nicht kennt (L) muss hier wohl noch ein casting durchgeführt werden:

SET :NEWDAT = char(date(:MYDATE) + 1 DAYS)