PDA

View Full Version : Web Query



hhoffi
01-09-10, 15:27
Hallo zusammen
Wie kann ich in einem Report ein Datum im Format jj.tt.yyyy darstellen. In der Datenbank ist das Feld als P7 im Format 1100801 gespeichert. Mit dem SUBSTR könnte ich ja einzelne Elemente definieren, kriege ich aber nicht ohne Fehlermeldung hin.
Vielen Dank für die Hilfe.
Hans

Juergen
02-09-10, 08:18
Hallo Hans,

am einfachsten und performantesten geht es mit einer Datumsdatei:
1.Feld P7, 2.Feld ISO-Datum (+ weitere Felder für andere Formate)

Jetzt brauchst du die Datei nur noch zu joinen oder über Foreign Key auf Metadatenebene einzubinden.

Damit kannst du das Problem "kein Datum" = Wert 0000000 erschlagen. Das mag WebQuery garnicht.

Ersetzte den Wert 0000000 durch NULL und schon funktioniert es wieder.

Die Story dazu:
Tech Tip: Converting Legacy Date Fields to DB2 Web Query Dates, Part II | DB2 (http://www.mcpressonline.com/database/db2/tech-tip-converting-legacy-date-fields-to-db2-web-query-dates-part-ii.html)

Grüße
Jürgen

hhoffi
02-09-10, 19:22
Hallo Jürgen
Vielen Dank für die Antwort, werde das probieren. Hast du evtl. noch gute Seiten oder Literatur welche sich mit WebQuery befassen.

Gruss
Hans

Fuerchau
03-09-10, 07:53
Für dein Datum erstellst du dir am Besten eine SQL-Funtion, die das Feld umformatiert und ein Datum zurückgibt:

case MyField
when 0 then NULL
else
date('1899-12-31')
+ dec(substr(digits(MyField), 1, 3), 3, 0) years
+ dec(substr(digits(MyField), 4, 2), 2, 0) months
+ dec(substr(digits(MyField), 6, 2), 2, 0) days
end as MyNewDate

BenderD
03-09-10, 07:59
... und die packst du dann in eine View und das Problem ist keins mehr.

D*B


Für dein Datum erstellst du dir am Besten eine SQL-Funtion, die das Feld umformatiert und ein Datum zurückgibt:

case MyField
when 0 then NULL
else
date('1899-12-31')
+ dec(substr(digits(MyField), 1, 3), 3, 0) years
+ dec(substr(digits(MyField), 4, 2), 2, 0) months
+ dec(substr(digits(MyField), 6, 2), 2, 0) days
end as MyNewDate