[NEWSboard IBMi Forum]

Thema: Datumsproblem

Hybrid View

  1. #1
    Registriert seit
    Jan 2005
    Beiträge
    30

    Datumsproblem

    Momentan habe ich folgendes Problem:

    Gegeben ist jeweils ein Feld in Datei X und Datei Y. Beide sind gepackt definiert 9,0.
    Die Datensätze sind über weitere Felder miteinander vernüpft und nur durch den Feldinhalt eindeutig zuzuordnen.

    In beiden Feldern ist ein Tagesdatum (Format: YYYYMMDD mit einer führenden 0) gespeichert. Ich muss ein SQL erfinden (und stelle mich dabei wieder einmal zu blöd an) das ermittelt, wie viele Kalendertage zwischen den beiden Daten liegen, bzw. die ermitteln in denen X+1 = Y ist.

    Genutzt werden kann ausschließlich SQL mit den Built in Funktionen bis Betriebssystemversion V5R3

    Falls jemand eine Idee oder Lösung hat, würde ich mich wie immer sehr freuen, an diesem Wissen zu partizipieren.

    Vielen Dank im voraus

    Burkhard

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    1. Umwandeln in ein ISO-Datum:

    date(substr(digits(mydate), 1, 4) || '-' || substr(digits(mydate), 5, 2) || '-' || substr(digits(mydate), 7, 2))

    Umrechnen in Tage:

    days(
    date(substr(digits(mydate), 1, 4) || '-' || substr(digits(mydate), 5, 2) || '-' || substr(digits(mydate), 7, 2))
    )

    Differenz also:

    days(
    date(substr(digits(mydate), 1, 4) || '-' || substr(digits(mydate), 5, 2) || '-' || substr(digits(mydate), 7, 2))
    ) - days(
    date(substr(digits(mydate2), 1, 4) || '-' || substr(digits(mydate2), 5, 2) || '-' || substr(digits(mydate2), 7, 2))
    )
    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
    Jan 2005
    Beiträge
    30
    So etwas habe ich bereits probiert,

    aber ich bekomme z.B. bei der date Ermittlung folgende Ergebnisse


    Datum ____ SQL macht daraus
    2006/06/27 ++++++++++
    2006/06/27 ++++++++++
    2010/12/31 0201-01-23
    2010/12/31 0201-01-23


    Wo liegt das Problem das ich nicht durchblicke?

    Ich kann, wenn ich das Ganze mittels cast in DEC(8) umwandele, day, month und year korrekt ermitteln.

    Immer noch verwirrt, Tendenz steigend

    Burkhard

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Wie du schreibst sind deine Datumsfelder 9stellig und haben eine führende 0. Ihr Format ist also 0YYYYMMTT. Das Jahr beginnt somit an Stelle 2, der Monat an Stelle 6 und der Tag an Stelle 8. Nimm' also besser:

    date(
    substr(digits(mydate), 2, 4) || '-' ||
    substr(digits(mydate), 6, 2) || '-' ||
    substr(digits(mydate), 8, 2))

  5. #5
    Registriert seit
    Jan 2005
    Beiträge
    30

    :-)

    Danke jetzt klappt's !

    Wald vor lauter Bäumen nicht mehr gesehen.

    Und auch danke für die "-" im Datumsformat.
    Das wasste ich mal wieder nicht und dabe es nicht geschafft einen berechenbaren Wert zu ermitteln.

    urkhard

Similar Threads

  1. Datumsproblem
    By muadeep in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 27-10-06, 11:35
  2. Datumsproblem
    By Joe in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 26-08-05, 09:11

Berechtigungen

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