[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    1.508

    Datumsformat *YMD

    Hallo zusammen,

    ich hab eine Verständnisfrage.
    Wenn ich in der H-Spez. das Datumsformat auf *YMD setze, wieso werden die Datumsfelder der Externbeschriebenen DS mit *ISO definiert?

    SQL-Variablen werden mit *YMD. definiert.

    Code:
    H DATFMT(*YMD)
    D MYDS          E DS                  Extname(MYFILE)
    D                                     Qualified      
    D                                     inz(*Extdft)   
     **** vom Kompiler eingefügt *****
    D CRTDAT                        10D   DATFMT (*ISO-)
     **** SQL-Felder vom Kompiler eingefügt *****
    D                 DS
    D  SQL_00231            137    144D   DATFMT(*YMD.)
    
    C/Free
       EXEC SQL set option commit=*none, closqlcsr=*endmod,
                       datfmt=*YMD, datsep='.';
    C/End-Free
    Danke schon mal für die Antworten!

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Schau dir per DSPFFD das Datumformat in der Datei an, der Default ist dort *ISO, welchses vom Compiler übernommen wird.

    Beachte aber, dass *YMD das Jahr nur 2-Stellig ist und beim verwenden Laufzeitfehler auftreten können.
    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 2003
    Beiträge
    1.508
    Danke für die rasche Antwort.
    Habe gehofft er würde die Definition der H-Spez. nehmen und im SQL einfach konvertieren.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ich würde dir empfehlen, auch in SQL mit *ISO zu arbeiten.
    Nur wenn es um Ein/Ausgaben richtung User geht kann man mittels %char(Mydate:*YMD) in benötigte Formate umwandeln.

    Das Problem bei *YMD ist in SQL, dass der Default eines Datums der 1.1.0001 ist.
    Eine solche Information kannst du bei *YMD nicht lesen, du musst einen NULL-Anzeiger verwenden oder der gesamte Fetch meldet einen SQLCOD < 0 !
    Es kann sogar sein, dass du einen MCH-Fehler zu Laufzeit bekommst.
    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
    Aug 2003
    Beiträge
    1.508
    Genau diese Probleme hatte ich.
    Habe Datumsfelder aus einem OUTFILE (DSPOBJD ...) einlesen und in eine Tabelle speichern wollen.

    Wenn ich in die Werte mit %Date() konvertiere funktioniert das super. Wenn ich aber alle Sätze auf einem Rutsch via INSERT INTO TAB1 SELECT ... machen möchte, muss ich jetzt noch beim zusammen setzen des Datums noch das Jahundert mit angeben.

    Wollte mir das anfangs ersparen, da das System beim Datumsformat *YMD (mit Glück) automatisch erkennt. Ist aber mit *ISO sauberer.

    Danke dir für die Infos!

Similar Threads

  1. Datumsformat in *EUR bei einer SQL-Tabelle
    By Tinabsd in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 26-03-09, 18:27
  2. Probleme mit Datumsformat in RPG
    By strickistracki in forum IBM i Hauptforum
    Antworten: 16
    Letzter Beitrag: 03-11-05, 15:18
  3. SQL Date im Datumsformat *EUR erstellen
    By N.Welp in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-11-05, 14:50
  4. QRY Datumsformat
    By spiceisnice in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 01-03-05, 11:36
  5. Sortieren durch ein Datumsformat
    By Newbie in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-07-02, 08:19

Berechtigungen

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