Hallo *ALL !
Folgene SQL Anweisung :
C/EXEC SQL
C+ Set :RecCount =
C+ (
C+ select count(*) from HARTPF
C+ where AKUNDE = :XKUNDE and AARTIK = :XARTIK
C+ and ADATUM > 0
C+ and date(concat(concat(substr(digits(ADATUM), 1, 2), '.'),
C+ concat(concat(substr(digits(ADATUM), 3, 2), '.'),
C+ substr(digits(ADATUM), 5, 2)) ))
C+ between DATE(DAYS(NOW()) - 7) and DATE(DAYS(NOW()))
C+ )
C/END-EXEC
wird im RPGLE Programm wegen Fehler :
SELECT/OMIT-Fehler in Feld (Cast((ISO Date/Time
formatting)CONCAT(SUBSTR(ChangeOfType(((Cast(ABS(H ARTPF_2.ADATUM¬127|),
Short Packed) AS Short Zoned))),DbopExprLiteral(1),DbopExprLiteral(2)),
DbopExprLiteral('.'),
SUBSTR(ChangeOfType(((Cast(ABS(HARTPF_2.ADATUM¬12 7|), Short Packed) AS
Short Zoned))),DbopExprLiteral(3),DbopExprLiteral(2)),Db opExprLiteral('.'),
SUBSTR(ChangeOfType(((Cast(ABS(HARTPF_2.ADATUM¬12 7|), Short Packed) AS
Short Zoned))),DbopExprLiteral(5),DbopExprLiteral(2))), Char Var Len,
max = 8 Pad(x
SELECT-/OMIT-Fehler in Teildatei QSQPTABL.
SELECT-/OMIT-Fehler in Teildatei QSQPTABL.
Wert in Datums-, Zeit- oder Zeitmarkenzeichenfolge ungültig.
nicht ausgeführt.
Es soll Anzahl in den letzten 7 Tagen geänderten Sätze ermittelt werden.
ADATUM ist ein 10-Stelliges dezimales Datumsfeld mit dem Inhalt TTMMJJHHSS .
Interaktiv funktioniert dieser SELECT prima.
Habe ich einen Fehler bei "date(....) between..." ?
Ev. andere Vorschläge zu o.g. Ermittlung ?
Gruß
A.W.