PDA

View Full Version : Datum



muadeep
05-10-09, 10:11
Hallo *all

ist es möglich festzustellen, ob es sich um ein Datum nach *ISO oder *EUR, etc. handelt!

zur Erklärung
(FDAT ist ein 8,0 stelliges Feld aus einer Datenbank)

in diesem Feld kann manchmal folgendes stehen

FDAT = 20091005
oder
FDAT = 05102009

mich würde jetzt interessieren, ob ich prüfen kann (egal ob in ILE oder mit SQL) ob es sich um ein Datum nach *ISO oder *EUR handelt!

besen
05-10-09, 10:25
C *eur test(de) datum
C if %error
C --------> *iso-Format
C else
C --------> *EUR-Format
C endif

Fuerchau
05-10-09, 10:39
Das klappt leider nicht, da auch ein ISO-Datum 0510-20-09 sowie ein EUR-Datum 20.09.1005 als gültig erkannt werden kann.

Hier musst du ggf. selber eine erweiterte Prüfung auf den Jahresbereich machen. Teste die Stellen 5+6 ob sie > 12 sind, dann ist das Format TTMMJJJJ sonst JJJJMMTT, da ein Monat nun mal nur von 01-12 geht.

muadeep
05-10-09, 12:48
@Fuerchau
die Idee ist wie immer genial

jetzt hab ich dann aber folgendes Problem daß bei einem Datum 05102009 ich als Wert 00 zurück erhalte!

bei 11102009 funktioniert es


D Test S 2 0

C Eval Test = %uns(%subst(%char(FDAT):5:2))http://www.qtl.co.il/img/copy.png

Fuerchau
05-10-09, 13:02
Statt %char (schneidet Vornull ab) nimm %edit(FDAT:'X').