PDA

View Full Version : Day_of_week



DKSPROFI
16-08-06, 08:15
Moin Leute,

als mehr oder weniger "stiller" Mitleser muss ich auch mal eine Frage stellen:

Diese Funktion:

C/EXEC SQL
c+ set :tag = DAYOFWEEK_ISO(:aktdat)
C/END-EXEC

sollte mir doch eigentlich den Wochentag zurückgeben. Also für den 16.08.2006 den Wert 3 (Mittwoch), ich bekomme aber den Wert 7 zurück.

Die Funktion

C/EXEC SQL
c+ Set :KW = Week_Iso((Substr(Digits(:Datum), 5, 4) concat '-' concat
c+ Substr(Digits(:Datum), 3, 2) concat '-' concat
c+ Substr(Digits(:Datum), 1, 2)))
C/END-EXEC

liefert mir den korrekten Wert für die KW (33). Was mache ich denn bei Dayofweek falsch???

vielen Dank für Eure Mithilfe.

Bratmaxxe
16-08-06, 08:25
Hi,

da stellt sich mir die Frage, in welchem Format liegt das Datum in der variablen "aktdat" vor ?

Ist es ein Datumsfeld oder ein Dec(6,0) ?

Gruß
Maxx

DKSPROFI
16-08-06, 08:27
Hi,

da stellt sich mir die Frage, in welchem Format liegt das Datum in der variablen "aktdat" vor ?

Gruß
Maxx

C/EXEC SQL
c+ Set Option DatFmt = *ISO
C/END-EXEC

H-Bestimmungen sind u.a.
Hdatfmt(*dmy) datedit(*dmy.) option(*nodebugio)

Bratmaxxe
16-08-06, 08:37
so gut kenne ich mich nun nicht mit sql aus aber ich würde es so in szene setzen:



d aktdat s d
d MyDay s 3 0

C time aktdat

/exec sql set :MyDay = DAYOFWEEK(:aktdat)
/end-exec


Gruß
Maxx

DKSPROFI
16-08-06, 08:46
so gut kenne ich mich nun nicht mit sql aus aber ich würde es so in szene setzen:



d aktdat s d
d MyDay s 3 0

C time aktdat

/exec sql set :MyDay = DAYOFWEEK(:aktdat)
/end-exec

Gruß
Maxx

gibt mir aber trotzdem 7 zurück????

Bratmaxxe
16-08-06, 08:55
dann ist euer Systemdatum auf der AS400 falsch eingestellt !

nachfolgender Code stimmt definitiv:




H DECEDIT('0,') DATEDIT(*DMY.)
D aktdat S D
d MyDay S 3S 0
*
C time aktdat
*
C/exec sql set :MyDay = DAYOFWEEK(:aktdat)
C/end-exec
*
*
C EVAL *INLR = *ON
******************Datenende ******************************


Inhalt von Myday nach Aufruf ist = 4

Gruß
Maxx

DKSPROFI
16-08-06, 09:13
Der Wert muß´3 sein, aber......

H-Bestimmungen Hdatfmt(*iso)

dann klappts auch mit dem Datum....


Trotzdem vielen herzlichen Dank für Deine Hilfe

Bratmaxxe
16-08-06, 09:22
Nene, der Wert 4 is schon richtig, denn

1=Sonntag, 2=Montag, 3 = Dienstag, 4 = Mittwoch .... usw.

nur bei

DAYOFWEEK_ISO(:aktdat) bekommst du deine 3 zurück !

Gruß
Maxx

DKSPROFI
16-08-06, 14:00
Genauso isses, das ist ja auch gewollt. Vielen Dank nochmals und einen angenehmen Tach.