[NEWSboard IBMi Forum]

Thema: SQL Timestamp

Hybrid View

  1. #1
    Registriert seit
    Nov 2020
    Beiträge
    418
    Hallo Klaus,

    Ich kann dir hier regex sehr ans Herz legen:

    Code:
    with orig as (select * from table (values ('2092013', '85203'), ('24092013', '95945'), ('24092013', '95945'), ('24092013', '95945'), ('24092013', '95945'), ('24092013', '95809'), ('7012014', '145445'), ('7012014', '145634'), ('17022014', '90631'), ('17022014', '90642')                                   ) t1 (ODREGD, ODREGT)
    )
    select orig.*, 
             timestamp (
                   date (regexp_replace(varchar(ODREGD), '(.*)(..)(....)', '$3-$2-$1')),
                   time (regexp_replace(varchar(ODREGT), '(.*)(..)(..)', '$1:$2:$3'))
                )
    from orig
    lg Andreas

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    @Andreas:
    Regular Expressions scheint wohl Dein neues Steckenpferd zu sein

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Nov 2020
    Beiträge
    418
    Zitat Zitat von B.Hauser Beitrag anzeigen
    @Andreas:
    Regular Expressions scheint wohl Dein neues Steckenpferd zu sein

    Birgitta
    Hehe, ja eigentlich schon seit vielen Jahren. :-)
    Ist erstaunlich was man damit alles machen kann.
    Nicht nur zum Programmieren, sondern auch wenn ich z.B. alle möglichen Arten von Listen umstrukturieren/erweitern möchte.
    Mail-Addressen/Passwort-Check, kann man mit 1 regexp_count() durchführen lassen.

    Auch hier, da die Spalten ODREGD und ODREGT unterschiedlich lang sein können (z.B. wenn Uhrzeit < 10 ist, also 08 Uhr, fehlt hier eine Stelle mit der führenden 0), klappt das alles mit SUBSTRING & Co erst recht wieder nicht und man muss weiter herumdoktern.

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Andreas_Prouza Beitrag anzeigen
    Auch hier, da die Spalten ODREGD und ODREGT unterschiedlich lang sein können (z.B. wenn Uhrzeit < 10 ist, also 08 Uhr, fehlt hier eine Stelle mit der führenden 0), klappt das alles mit SUBSTRING & Co erst recht wieder nicht und man muss weiter herumdoktern.
    Deshalb konvertiert man an dieser Stelle auch nicht mit VarChar() oder Char(), sondern mit Digits(), da bleiben die Ziffern wo sie sind und führende Nullen werden ausgegeben ... und schon klappts mit dem Substring, den man im übrigen gar nicht braucht.
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. CAST TIMESTAMP
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 26-07-17, 16:34
  2. Timestamp über ODBC
    By Wwilson in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 24-06-14, 16:26
  3. Query und Feld mit TIMESTAMP oder aktuelle Uhrzeit / Datum
    By Franz.Rung in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-11-13, 16:54
  4. ILE Cobol: accept aTimestamp from timestamp?
    By rebe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 26-09-01, 08:46

Tags for this Thread

Berechtigungen

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