[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2014
    Beiträge
    25
    Zitat Zitat von Fuerchau Beitrag anzeigen
    In der Select-Auswahl.
    vielen Dank für den Hinweis,
    aber mit welcher Codesyntax tippt man den die Select Abfrage für T1.DATE2 ein?

    Click image for larger version. 

Name:	select_error.PNG 
Views:	16 
Size:	12,8 KB 
ID:	267

    Gruß
    PFR

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    char(date(char(t1.pdat2 * 1000000)), EUR) an Stelle des Feldes!
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2014
    Beiträge
    25
    Hallo Herr Fuerchau,

    mit ihrer Syntax klappt das prima,
    bekommt man nun das ganze auch über eine Funktion bei der Select Abfrage realisiert

    z.B NumToDate(T1.PDAT2), oder wie müsste man das realisieren?

    Gruß
    PFR

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Natürlich kann man sowas auch in eine UDF packen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jun 2014
    Beiträge
    25
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Natürlich kann man sowas auch in eine UDF packen.
    Könnten Sie mir ein Beispiel für diese UDF zeigen mit dem Code:

    char(date(char(T1.PDAT2 * 1000000)), EUR)


    Gruß
    PFR

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Jun 2014
    Beiträge
    25
    Zitat Zitat von Fuerchau Beitrag anzeigen
    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
    Click image for larger version. 

Name:	fuction_NumtoDateCode.PNG 
Views:	20 
Size:	8,5 KB 
ID:	270 Click image for larger version. 

Name:	NumtoDate_Abfrage.PNG 
Views:	24 
Size:	27,0 KB 
ID:	271 Click image for larger version. 

Name:	NumtoDate_Error.PNG 
Views:	18 
Size:	9,2 KB 
ID:	272

    hat jemand eine Idee woran das liegt?

    Gruß
    der Newbie
    PFR

  8. #8
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Du gibst in der Funktion ein RETURNS DECIMAL an, obwohl Du ein CHAR zurückgibst.

    Gruß,
    KM

  9. #9
    Registriert seit
    Jun 2014
    Beiträge
    25
    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

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    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:

    Code:
    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

    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

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  11. #11
    Registriert seit
    Jun 2014
    Beiträge
    25
    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 erst mal durcharbeiten.

    Gruß
    PFR

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Du kannst sogar ohne Hilfsvariable verkürzen:
    RETURN CHAR(DATE(CHAR(D_YMD * 1000000)), EUR);
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Antworten: 2
    Letzter Beitrag: 02-05-14, 08:42
  2. Query und Feld mit TIMESTAMP oder aktuelle Uhrzeit / Datum
    By Franz.Rung in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-11-13, 16:54
  3. Datum berechnen mit CL
    By j.k. in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 15-11-10, 16:31
  4. SQL - Datum (8,0) drehen und abfragen
    By Peter Kosel in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-05-03, 13:33
  5. Datum + 10 Tage in RPG
    By HoScHiE in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 06-08-01, 14:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •