[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2006
    Beiträge
    13

    Question SQL: Aus mehreren Feldern ein Datum erkennen

    Hi zusammen,
    ich hab als Azubi mal wieder ein Frage, eine kleine zwar aber Ihr kennt das ja
    sicherlich: "Das muss doch besser gehen".

    ich hab hier 3 Felder die folgendermaßen definiert sind und Datumsteile enthalten:
    D1 DECIMAL 2 Tag
    D2 DECIMAL 2 Monat
    D3 DECIMAL 4 Jahr

    Ich möchte da nun ganz gerne per Select ein richtiges Datum draus erkennen.

    Per RPG ist das ja normalerweise kein Problem irgendein Zeichen-Feld zu nehmen und es per %date(string:*DMY0) in ein richtiges Datumsformat zu konvertieren,
    aber wie in SQL ?

    Als ich unter Zeitdruck mit einem Projekt war hatte ich in meinem SQLRPGLE folgendes gemacht:
    TRIM(CHAR(D1)) concat '.' concat TRIM(CHAR(D2)) concat '.' concat TRIM(CHAR(D3)) as MyDATE

    Was das ganze zwar nur Optisch aufwertet und höchst grausam ist, aber es hat damals seinen Zweck erfüllt. Mit der der SQL funktion DATE() und diversen concat versuchen hab ich auch schon experimentiert, aber immer nur ein Feld voller +++++++ erhalten.

    Ich danke schon mal im Voraus für alle Tips und Tricks, ihr seid echt ein klasse Forum!
    „Wer A sagt, der muß nicht B sagen. Er kann auch erkennen, daß A falsch war.“
    -Bertolt Brecht

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.269
    Mach ein ISO-Datum draus:

    date(digits(d3) concat '-' concat digits(d2) concat '-' concat digits(d1)) as mydate

    Die Anzeige (in STRSQL) gibt das Datum entweder im Job-Format oder als ISO aus (F13).
    Im RPGLE sind H-Bestimmung sowie "set option" erforderlich.
    Dies gilt nur, wenn das Datum ausserhalb der Range 1.1.1940 und 31.12.2039 ist.
    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
    Jul 2006
    Beiträge
    13
    Ah

    das sieht schon mal besser aus. Digits() kannte ich noch nicht.
    Aber um die "concat '-' concat" kommt man nicht herum oder ?

    ich hatte gehofft, es ginge sowas wie:

    date(digits(D3) concat digits(D2) concat digits(D1))

    aber das führt wieder zu ++++++.
    „Wer A sagt, der muß nicht B sagen. Er kann auch erkennen, daß A falsch war.“
    -Bertolt Brecht

Similar Threads

  1. SQL Datum
    By steven_r in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 04-12-06, 12:16
  2. SQL DATUM
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 20-11-06, 18:37
  3. SQL Case von mehreren Dateien
    By steven_r in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 08-08-06, 09:34
  4. sql select mit zusätzl. Feldern
    By rr2001 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-07-06, 09:56
  5. SQL UDF Prob mit leeren Feldern
    By HACHIMAN in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 22-05-06, 09:48

Berechtigungen

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