[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2004
    Beiträge
    19

    Datumsvergleich ttmmjjjj mit ttmmjj

    Hallo Forum,
    kann ich ein Datum im Format tt.mm.jjjj mit einem
    Datum im Format tt.mm.jj vergleichen?
    Wenn ja, Wie wird der Vergleich gehandhabt ?
    Wird intern ein Wert benutzt der das Jahrhundert zuteilt ?
    Z.B. tt.mm.90 --> tt.mm.1990
    tt.mm.01 --> tt.mm.2001

    Ich habe folgendes codiert:
    D#ESDTVO: Bildschirm Eingabedatum im Format tt.mm.jjjj (Datumsfeld)
    D#ESDTBI: Bildschirm Eingabedatum im Format tt.mm.jjjj (Datumsfeld)
    ARANL: Dateifeld im Format ttmmjj (numerisch, gepackt, 6 Stellen)
    Dateiaufbau nicht änderbar, da Standardsoftware


    IF (D#ESDTVO <> %DATE(01010001:*EUR) OR D#ESDTBI // Datum eingegeben ?
    <> %DATE(01010001:*EUR)) AND
    (D#ESDTVO > %DATE(ARANL:*EUR) OR D#ESDTBI // Datum außerhalb Auswertungszeitraum ?
    < %DATE(ARANL:*EUR));
    ITER; // DS ÜBERLESEN
    ENDIF;

    Fehlermeldung:

    *RNF7510 30 474 013500 Der Operand ARANL ist zu klein, um ein Datum mit dem Format
    *EUR vollständig aufnehmen zu können.

    Danke für alle Antworten

  2. #2
    Registriert seit
    Dec 2002
    Beiträge
    301
    Versuch mal den. %DATE(ARANL:*DMY)
    Frank Hildebrandt

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Mit %DATE(VAR:FMT) wird ein beliebiger Wert in ein *ISO-Format umgewandelt !
    Die FMT-Angabe ist das VON-Format, also die Quelle.

    *DMY
    *MDY
    *YMD

    Jahr = 1940 - 2039

    *CYMD
    *CMDY
    *CDMY

    Jahr = 1900 - 2899

    *ISO
    *EUR
    *USA
    *JIS
    *LONGJUL

    Jahr = 0001 - 9999
    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

  4. #4
    Registriert seit
    Jul 2004
    Beiträge
    19

    Ablauf Datumsvergleich

    IF (D#ESDTVO <> %DATE(01010001:*EUR) OR D#ESDTBI // Datum eingegeben ?
    <> %DATE(01010001:*EUR)) AND
    (D#ESDTVO > %DATE(ARANL:*DMY) OR D#ESDTBI // Datum außerhalb Auswertungszeitraum ?
    < %DATE(ARANL:*DMY));
    ITER; // DS ÜBERLESEN
    ENDIF;

    Wenn ich das richtig verstehe, läuft es also so ab:
    1. D#ESDTVO: Benutzer gibt 10.05.2006 ein
    D#ESDTBI: Benutzer gibt 31.05.2006 ein
    2. Datum wird in *ISO umgewandelt: 20060510
    20060531
    3. ARANL: enthält 130599

    4. Datum wird in *ISO umgewandelt, und weil das Quellformat *DMY ist,
    gilt bei Y 00 bis 39 Jahr wird umgewandelt in 20000512 bis 20390512
    bei Y 40 bis 99 Jahr wird umgewandelt in 19400512 bis 19990512
    5. Daten werden verglichen

  5. #5
    Registriert seit
    Dec 2002
    Beiträge
    301
    Genau so läuft das .
    Frank Hildebrandt

Similar Threads

  1. Datumsvergleich im OPNQRYF
    By Jenne in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 07-06-04, 12:19

Berechtigungen

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