Anmelden

View Full Version : Umformatierung von einem Textfeld in eine Datum Feld



Seiten : 1 [2]

PFR
06-06-14, 10:05
Das Forum ist kein Ersatz für eine Ausbildung:).
Bitte nicht böse sein.
Beispiele für SQL-UDF's gibt es in der SQL-Reference.

Guten Morgen,

Sie haben vollkommen recht!
ich bin aktuell dabei die Funktion selbst zu schreiben und hänge bei folgenden Error
270 271 272

hat jemand eine Idee woran das liegt?

Gruß
der Newbie
PFR

KM
06-06-14, 11:21
Du gibst in der Funktion ein RETURNS DECIMAL an, obwohl Du ein CHAR zurückgibst.

Gruß,
KM

PFR
06-06-14, 11:30
CREATE FUNCTION C84F.NUMTODATE(inputDecimal DECIMAL(8))
RETURNS CHAR
LANGUAGE SQL
Return CHAR (date(char(inputDecimal * 1000000)), EUR);


so klappt es auch nicht, selbe Fehlermeldung

Gruß
PFR

B.Hauser
06-06-14, 18:38
Sehe ich das richtig, Du willst keine alphanumerische Darstellung eines Datums, sondern ein echtes Datum!
Wenn ja, so geht die einfachste Konvertierung aus einem numerischen Datum in ein echtes Datum wie folgt:


Date(Digits(YourNumDate) concat '000000')

Ansonsten solltest Du wirklich entweder einen Kurs besuchen, oder was natürlich viel schwieriger ist, Dir die SQL Referenz und diverse SQL Redbooks reinziehen.

Die aktuelle SQL Referenz findest Du hier:
Database DB2 for i SQL Reference (http://www-01.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_72/db2/rbafzpdf.pdf)

Für Stored Procedures Triggers und User Defined Functions ist das folgende Redbook zu empfehlen:
Stored Procedures, Triggers, and User-Defined Functions on DB2 Universal Database for iSeries (http://www.redbooks.ibm.com/abstracts/sg246503.html?Open)

Birgitta

PFR
10-06-14, 08:09
Guten Morgen zusammen,

erst mal Vielen Dank für euren fleißigen Support.

Mit folgendem Code habe ich meine Konvertierung des Datums YYYYMMDD -> DD.MM.YYYY in einer Funktion hinbekommen:

CREATE FUNCTION C84F.CONVDATE
(D_YMD DECIMAL(8,0))
RETURNS DATE
LANGUAGE SQL
BEGIN
DECLARE OUTPUT DATE;
SET OUTPUT = CHAR(DATE(
CHAR(D_YMD * 1000000)), EUR);
RETURN OUTPUT;
END

Ich werde mich durch die Referenzbücher von IBM Database DB2 for i SQL Reference (http://www-01.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_72/db2/rbafzpdf.pdf) erst mal durcharbeiten.

Gruß
PFR

Fuerchau
10-06-14, 08:15
Du kannst sogar ohne Hilfsvariable verkürzen;):
RETURN CHAR(DATE(CHAR(D_YMD * 1000000)), EUR);

PFR
10-06-14, 08:32
danke für den Hinweis Fuerchau,
ist es auch möglich eine SQL Funktion innerhalb ein AS400 Querys zu nutzen (WRKQRY)?

Gruß
PFR

B.Hauser
10-06-14, 08:40
Nein! Query ist kein SQL!
Das einzige was Du machen kannst, ist die UDF in einer View zu verwenden und diese View dann wieder im Query einzubinden.

Birgitta