[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2007
    Beiträge
    9

    Post Import nach Excel mit MS Query Datum formatieren

    HAllo,

    ich habe ein Problem mit der Formatierung von einem Datumsfeld. Das Datum kommt in dem Format 30408 also der 3.4.2008 und so soll es auch in excel dargestellt werden. Das Problem ist dabei das es keine führende 0 gibt sondern dieses Zeichen einfach weggelassen wurde. beim 100308 ist es einfacher
    Kann mir hiebei jemand helfen?

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    hi,

    hast du schon die suchfunktion im forum probiert?
    mit stichwort excel oder cpytoimpf findest du sehr!

    ich gehe davon aus du übergibst das dazum als zahl. übergebe es mal als char dann gehen die führenden nullen nicht verlorgen.

  3. #3
    Registriert seit
    Dec 2007
    Beiträge
    9
    Der befehl cpytoimpf hilft mir nicht weiter, da die Datenbank nicht von uns erstellt worden ist. Sonst wäre da ja auch die 0 mit dabei. Ich bin bei der suche auf den SQL befehl date gstoßen, jedoch geht das nicht wegen der führenden 0

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das Problem ist, dass die Funktion Date nur ein 10-stelliges Datum korrekt formatieren kann. Du musst das Datum in SQL also formatieren, dabei ist ein besonderes Problem, dass du nur 6 Stellen hast:

    date(
    case
    when substr(digits(mydate), 5, 2) < '40' then '20' else '19'
    end
    concat substr(digits(mydate), 5, 2)
    concat '-'
    concat substr(digits(mydate), 3, 2)
    concat '-'
    concat substr(digits(mydate), 1, 2)
    )

    digits(mydate) liefert ein 6-Stellige Zeichenfolge, also mit führender 0.
    Mit dem Ausdruck in date(...) formatierst du ein ISO-Datum in der Form 'JJJJ-MM-TT', dass von date() korrekt in ein Datum umgewandelt werden kann.

    MS-Query musst du dann allerdings in der SQL-Sicht bearbeiten.
    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
    Dec 2007
    Beiträge
    9
    also, ich bin glaube ich zu blöd!?
    wenn ich das so in der SQL sicht einegbe, bekomme ich die meldung das ich nur lesend auf die DB zugreife. Das ist von mir ja auch so beabsichtigt. Damit das ganze geht, gibt es noch eine andere möglichkeit zur Lösung??

  6. #6
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    schreib mal genau was du hast und wohin du willst. ich bin etwas durcheinander.
    ist die spalte ein interger feld? wie ist dieses aufgebaut?
    willst du die formatierung via excel oder sql?

  7. #7
    Registriert seit
    Dec 2007
    Beiträge
    9

    Post

    Also....folgendes habe ich vor:
    Die Daten aus der i5 via ODBC in Excel darstellen. Welches Format die Daten haben, kann ich nicht genau sagen, aber der ursprüngliche aufbau stammt noch aus S36 Zeiten. Wenn die Daten in Excel sind, möchte ich gerne das Datum welches im Format "30408" für den 3.4.2008 bzw. "10042008" für den 10.4.2008 dargestellt ist gerne umwandeln. Es soll also nachher erscheinen 10.04.2008. Anschließend werden die Daten weiter aufbereitet. Ob die Formatierung nun in Excel oder im Query von MS geschieht ist eigentlich egal.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das hat mit der Formatierung an sich nichts zu tun.
    Die SQL-Funktion date() wandelt eine Zeichenkette in den Feldtyp DATE um, so dass Excel diesen auch als Datum erkennt und korrekt formatiert.
    Intern wird ein Datum in "Anzahl Tagen seit 30.12.1899" gespeichert.

    Wenn du die Formatierung in Excel vornimmst, kannst du mittles Zahlenformat "##,##,##" eine entsprechende Formatierung drauflegen, allerdings ist es immer noch kein "Datum".

    Nun zu MS-Query:
    Wenn du alle Felder, die du benötigst ausgewählt hast, schaltest du in die SQL-Sicht und ersetzt dein Datum-Feld mit dem obigen Date(CASE-Ausdruck), so dass dies anschliessend so aussieht:

    select f1, f2, f3,...
    date(case ...),
    f5, f6
    from mylib.myfile

    Wobei eben "mydate" durch den Namen deines Feldes ersetzt werden 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

  9. #9
    Registriert seit
    Dec 2007
    Beiträge
    9

    Talking

    An alle einen herzlichen Dank. es hat geklappt.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Was hat nun geklappt ?
    Der SQL oder das Zahlenformat in Excel ?
    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

  11. #11
    Registriert seit
    Dec 2007
    Beiträge
    9
    Guten Morgen,

    die Lösung von Fuerchau hat mir weitergeholfen, also die SQL Lösung. Danke nochmals...

Similar Threads

  1. Datum in Query
    By heini in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-09-06, 10:10
  2. Datum überlebt ODBC Transfer auf Excel nicht
    By jjagi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 07-07-06, 08:29
  3. Query und Datum
    By Hubert Brethauer in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 05-05-06, 12:37
  4. Daten ins Excel über MS Query
    By MichaelS in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 19-09-05, 13:50
  5. Nochmals Excel - MS Query
    By AndyK in forum NEWSboard Windows
    Antworten: 4
    Letzter Beitrag: 24-03-05, 15:13

Berechtigungen

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