[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2002
    Beiträge
    164

    sql num. Feld formatieren

    werte Forenmitglieder,
    folgendes Problem: Datum ist in Datenbank als num.
    Feld gespeichert, Format CYYMMDD,
    z. B. 1060531 für 31. Mai 2006.
    Die "1" am Beginn kennzeichnet 21. Jhdt.

    Wie kann man in einem SQL-Report daraus ein lesbares
    Datumsfeld generieren.
    Z.B. 06/05/31

    Vielen Dank

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    etwas kompliziert, aber es geht:

    date(substr(digits(mydate+19000000), 1, 4) concat '-' concat substr(digits(mydate+19000000), 5, 2) concat '-' concat substr(digits(mydate+19000000), 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
    Feb 2002
    Beiträge
    164

    Darstellung ++++++++

    s. g. Hr. Fürchau,
    vielen Dank für die prompte Antwort.

    Leider gibt das Ding nur ++++++++ im Datum aus.

    Was habe ich falsch gemacht?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Du musst ggf. im STRSQL->F13->1 das datumsformat auf *ISO stellen.
    Ausserdem funktioniert das nur, wenn das Feld auch tatsächlich das Format beinhaltet.
    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
    Feb 2002
    Beiträge
    164
    S.g. Hr. Fürchau,

    das Datumsformat ist *ISO.

    Hier die Ausgabe:

    Auftrags- DATE
    datum
    1.060.601 ++++++++++
    1.051.216 ++++++++++
    1.051.214 ++++++++++
    1.051.214 ++++++++++
    1.060.117 ++++++++++
    1.060.117 ++++++++++
    1.060.124 ++++++++++

    hier das Statement:
    select apaqda,
    date(substr(digits(apaqda+19000000), 1, 4) concat '-' concat substr(
    digits(apaqda+19000000), 5, 2) concat '-' concat substr(digits(apaqd
    a+19000000), 7, 2) ) from veafpol7

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Ok, durch die Addition von 19000000 ergibt sich ein DEC(9, 0)-Feld an Stelle des 8-stelligen.
    Beim substr musst du eben 1 stelle hinzufügen oder statt DIGITS eben CHAR nehmen.
    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

  7. #7
    Registriert seit
    Feb 2002
    Beiträge
    164
    Vielen Dank,

    es hat geklappt.

  8. #8
    Registriert seit
    Feb 2002
    Beiträge
    164

    selectiertes Feld bedingen

    Sehr geerhter Hr. Fuerchau,

    kann man Ihr sql-Statement derart erweitern,
    dass das date-Feld nur dann selektiert wird, wenn
    das Datumsfeld in der Tabelle auch gefüllt ist?

    Ansonsten wird bei leeren Datumsfelders immer
    1900-00-01 angezeigt.

    Vielen Dank für Ihre Hilfe.

  9. #9
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    joh das geht mit CASE. Hier ein kleines Beispiel

    PHP-Code:
    Select CASE 
    When Datum Is Null Or Datum 0 THEN 
       
    '' 
    ELSE 
       
    'Hier die Datumsberechnung einfügen
    END As MeinFeld
    From MeineDatei 
    Gruß

    Sascha

  10. #10
    Registriert seit
    Feb 2002
    Beiträge
    164

    Vielen Dank

    vielen Dank

    an Sascha

    von RR

Similar Threads

  1. per SQL Feld ändern...
    By svente in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 23-01-07, 09:49
  2. num. Feld in Datumsfeld konvertieren
    By edig in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 27-07-06, 08:20
  3. Feld mit loval via SQL belegen
    By Booley in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-08-05, 08:33
  4. Numm Feld nach DatumsFeld in SQL
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 27-04-05, 15:36

Berechtigungen

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