[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2009
    Beiträge
    2

    Post Ich möchte ein *ISO in *EUR Datum konvertieren

    Wie kann ich auf einer einfachen Weise ein *ISO Datum in einem *EUR Datum im freeRPG konvertieren:

    fDatumISO ist als Datumsfeld *ISO definiert und beinhaltet '2013-04-26'

    fDatumEUR ist als Datumsfeld *EUR definiert und soll den Inhalt von fDatumISO bekommen.

    Danke für die Ratschläge
    Bruno

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Einfach:

    fDatumEUR = fDatumISO ;
    Die Runtime übernimmt die Konvertierung.
    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
    Aug 2001
    Beiträge
    2.875
    Ein Datum ist ein Binär-Wert, der durch das Datums-Format lesbar gemacht wird. In RPG wird das Datum immer in eine alphanumerische Variable konvertiert und erst unmittelbar vor dem Zurückschreiben wieder konvertiert.

    Eine Konvertierung von Datum zu Datum ist damit sinnlos.

    Wenn Du allerdings für Deine Ausgabe das Datum in einer alphanumerischen Form in einem bestimmten Format brauchst, kannst Du die Built-in-Function %Char verwenden, die ein Datum in (fast) jede beliebige alphanumerische Darstellung konvertiert.

    Code:
     /Free
        MyCharDatum = %Char(MyDatum: *EUR);
     /End-Free
    Birgitta
    Birgitta Hauser

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

  4. #4
    Registriert seit
    Jul 2009
    Beiträge
    2
    Ah mon Dieu :-)

    Danke!!!

    ein schönes Wochenende wünsche ich noch
    Bruno

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    @Birgitta
    Das ist definitiv falsch.
    Im RPGLE ist eine Datumvariable IMMER vom Typ CHAR!
    Du kannst es dir gerne im Debugger ansehen.
    Ich kann diese auch mit OVERLAY redefinieren.
    Ein EVAL von einem Datumsfeld in ein anderes ruft intern die Runtime für Datumsroutinen auf.

    Packst du ein Datum *EUR in eine DS und überträgst diese in eine 2. DS mit Datum *ISO erfolgt KEINE Konvertierung, so dass der Zugriff auf die Variable später einen Laufzeitfehler mit ungültigem Datum auslöst.

    Ein Ändern von Datum1 in Datum2 wird durch den einfachen EVAL bereits durchgeführt.
    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

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Zitat Zitat von Fuerchau Beitrag anzeigen
    @Birgitta
    Das ist definitiv falsch.
    Im RPGLE ist eine Datumvariable IMMER vom Typ CHAR!
    Wo ist bitte der Unterschied zwischen:
    "In RPG wird das Datum immer in eine alphanumerische Variable konvertiert und erst unmittelbar vor dem Zurückschreiben wieder zurückkonvertiert" und "eine Datumsvariable IMMER vom Typ CHAR!"

    Eine Konvertierung von Datum zu Datum ist insofern sinnlos, weil das Datum nie in dem entsprechenden Format sondern immer als Binär-Wert zurückgeschrieben wird.
    Um allen Problemen aus dem Weg zugehen, sollte man für Datums-Felder ein einheitliches Format (am Besten *ISO) verwenden.

    Vielleicht solltest Du mal die Antworten genauer lesen, bevor Du zurückschiesst!

    Dass das Datum für die Aufgabe entsprechend aufbereitet wird, werden kann und muss, steht auf einem anderen Blatt. Das hatte ich aber zuvor schon geschrieben.
    Birgitta Hauser

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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Da es hier um RPG und nicht um die DB geht, spielt eine interne DB-Darstellung doch keine Rolle.

    Hier geht es darum, von einer RPG-Variable in eine andere das Format zu ändern. Dies passiert automatisch durch den EVAL.
    Die %char()-Funktion benötige ich nur, wenn ich ein Datumfeld in ein Zeichenfeld mit gleichzeitiger Formatumwandlung machen möchte, ansonsten reicht auch hier ein einfacher Eval.

    "Eine Konvertierung von Datum zu Datum ist damit sinnlos."

    Es ist durchaus sinnvoll ein Format zu konvertieren wenn ich es z.B. am Bildschirm anzeigen oder drucken oder in eine Nicht-DB-Ausgabe schieben muss.
    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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Vielleicht solltest Du mal die Antworten genauer lesen, bevor Du zurückschiesst!
    ... der 30.4. naht

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    @Baldur: Ist witzig euch zu verfolgen. Ihr beide habt recht! Und das schon von Anfang an.

    Zitat Zitat von Fuerchau Beitrag anzeigen
    "Eine Konvertierung von Datum zu Datum ist damit sinnlos."

    Es ist durchaus sinnvoll ein Format zu konvertieren wenn ich es z.B. am Bildschirm anzeigen oder drucken oder in eine Nicht-DB-Ausgabe schieben muss.
    Birgitta hat genau das gleiche beschrieben. Für mich sieht es so aus, als ob du sie ein paar mal falsch verstanden hättest.
    Denn das GANZE Zitat von Birgitta war:
    Zitat Zitat von Birgitta
    Eine Konvertierung von Datum zu Datum ist damit sinnlos.

    Wenn Du allerdings für Deine Ausgabe das Datum in einer alphanumerischen Form in einem bestimmten Format brauchst, kannst Du die Built-in-Function %Char verwenden, die ein Datum in (fast) jede beliebige alphanumerische Darstellung konvertiert.
    Ansonsten wünsch ich euch noch ein erholsames Wochenende

    lg Andreas

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    @Andreas
    Ich betrachte nur die Aufgabenstellung und antworte entsprechend.
    Zusatzinformationen verwirren die meisten doch nur ins besonders wenn sie mit der gestellten Aufgabe nichts zu tun haben.
    Die DB2/400 war hier gar nicht gefragt.
    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. SQL Datum in Integer konvertieren
    By harkne in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 17-11-10, 15:44
  2. Ile-RPG: Datum konvertieren
    By dino in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 02-11-10, 10:59
  3. SQL: Aus mehreren Feldern ein Datum erkennen
    By I0N in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-11-06, 12:44
  4. Datum in Query
    By heini in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-09-06, 10:10
  5. Datum überlebt ODBC Transfer auf Excel nicht
    By jjagi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 07-07-06, 08:29

Tags for this Thread

Berechtigungen

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