[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    850

    SQL Timestamp oder Funktion ?

    Hallo zusammen,

    in einer Tabelle habe ich ein Timestampfeld. Jetzt soll
    das Alter zur aktuellen Zeit berechnet werden.

    Also z.B.
    (current_timestamp - idtime)

    Das Ergebnis soll so aussehen:
    Feld Alter =
    1 Jahr 5 Monate 3 Tage 45 Minuten 10 Sekunden

    Hat jemand eine Idee wie man das lösen könnte ?
    Gruss
    Michael

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    ganz einfach:
    Subtrahiere zwei Zeitmarken mit SQL.
    Das Ergebnis ist ein Feld mit der Definition 20,6.
    Stelle 1-4 = Differenz Jahre
    Stelle 5-6 = Differenz Monate
    Stelle 7-8 = Differenz Tage
    Stelle 9-10 = Differenz Stunden
    Stelle 11-12 = Differenz Minuten
    Stelle 13-14 = Differenz Sekunden
    Nachkommastellen = Differenz Mikro-Sekunden.

    PHP-Code:
    D                 DS                                                       
    D DiffDate                      20S 6                                      
    D   DiffYears                    4S 0 overlay
    (DiffDate)                    
    D   DiffMonths                   2S 0 overlay(DiffDate: *Next)             
    D   DiffDays                     2S 0 overlay(DiffDate: *Next)             
    D   DiffTime                          overlay(DiffDate: *Next)             
    D     DiffHours                  2A   overlay(DiffTime)                    
    D     DiffMinute                 2A   overlay(DiffTime: *Next)             
    D     DiffSecond                 2A   overlay(DiffTime: *Next)             
    D   DiffMSeconds                 6S 0 overlay(DiffDate: *Next)             
                                                                               
    D Timestamp1      S               Z   inz(Z'2004-07-01-12.00.00.000000')   
    D Timestamp2      S               Z   inz(Z'2003-07-01-08.30.45.000000')   
     *-------------------------------------------------------
    C/EXEC SQL set :DiffDate  = :Timestamp1 - :Timestamp2     
    c
    /END-EXEC                                                
                                                              
    C     DiffDate      Dsply                                 
    C     DiffTime      Dsply 
    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
    Jan 2001
    Beiträge
    850
    Hallo Birgitta,

    das ist der Hit.
    Und ich suche schon so lange.................................


    Vielen Dank
    Gruss
    Michael

Similar Threads

  1. SQL: Ausführungsverhalten einer Funktion in einem CASE-Statement
    By mwithake in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 04-08-09, 14:57
  2. sql funktion
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-06-06, 12:16
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  4. Erstellen Trigger über SQL / Read Funktion
    By GHoffmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-07-05, 09:18
  5. SQL Funktion " Like"
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-01-02, 16:08

Berechtigungen

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