View Full Version : Umformatierung von einem Textfeld in eine Datum Feld
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
Du gibst in der Funktion ein RETURNS DECIMAL an, obwohl Du ein CHAR zurückgibst.
Gruß,
KM
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
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
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
Du kannst sogar ohne Hilfsvariable verkürzen;):
RETURN CHAR(DATE(CHAR(D_YMD * 1000000)), EUR);
danke für den Hinweis Fuerchau,
ist es auch möglich eine SQL Funktion innerhalb ein AS400 Querys zu nutzen (WRKQRY)?
Gruß
PFR
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