[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    1.981

    jjmt + 1 Tag als jjmt im SQL

    Hi *all
    ich brech mir grade die Finger um ein Feld das JJJJMMTT enhällt mit SQL um einen tag zu erhöhen und wieder als JJJJMMTT zur verfügung zu stellen.
    z.tz habe ich dieses (funktionierende) Monster
    PHP-Code:
    SELECT 20000000 cast(                                   
                           
    substring(char(                    
                                  
    date(                       
           
    substring(digits(medbis), 14concat '-' concat  
           substring
    (digits(medbis), 52concat '-' concat  
           substring
    (digits(medbis), 72)                    
                                      )-
    1 days), 72concat 
                          substring
    (char(                     
                                 
    date(                        
           
    substring(digits(medbis), 14concat '-' concat  
           substring
    (digits(medbis), 52concat '-' concat  
           substring
    (digits(medbis), 72)                    
                                     )-
    1 days), 42concat  
                          substring
    (char(                     
                                 
    date(                        
           
    substring(digits(medbis), 14concat '-' concat  
           substring
    (digits(medbis), 52concat '-' concat  
           substring
    (digits(medbis), 72)                            
                                      )-
    1 days), 12) as decimal(8)) 
     
    FROM Datei WHERE MEDLS 'WERT' 
    gehts auch einfacher?
    V7R1
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  2. #2
    Registriert seit
    Dec 2004
    Beiträge
    203
    Hi,

    UPDATE lib/file
    SET field =
    DEC(VARCHAR_FORMAT(TIMESTAMP(DIGITS(field) CONCAT '000000') + 1
    DAY, 'YYYYMMDD'), 8, 0);

    Wobei mein Feld direkt 8,0 decimal war. Evtl. musst dudas in dem digits() noch anpassen.
    Ansonsten funzt das wunderbar.

    Das habe ich mal von Brigitta bekommen

    Gruß,
    Ralf

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.269
    Müsste so funktionieren:
    dec(replace(char(date(char(jjjjmmttfeld * 1000000) + 1 days, iso), '-', ''), 8, 0)

    Wozu die 20000000?
    Enthält dein Datum kein vollständiges Jahr?
    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

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.981
    Klasse, Danke!
    funktioniert
    Wenn wir unsre Birgitta nicht hätten ...

    Danke!
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.981
    @Baldur
    Wozu die 20000000?
    Enthält dein Datum kein vollständiges Jahr?
    doch.
    aber Date gibt mir tt.mm.jj zurück (Datumsformat *DMY) beim Kunden

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Dec 2004
    Beiträge
    203
    By the way ... ich bin immer wieder von der schnelligkeit und der Qualität der Antworten hier in der Community erstaunt / begeistert ....

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.269
    Date() gibt immer den Typ Date zurück.
    Einzig bei der Funktion CHAR(DATE()) wird das Jobformat berücksichtigt und kann ggf. zum Fehhler führen (< 1.1.40 oder > 31.12.39).
    Dies kann man aber mit CHAR(DATE(), ISO) umgehen.
    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

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    1.981
    Thx,
    wieder was gelernt
    (stimmt natürlich, ich verwende Char(date(...)
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.879
    Unter 7.1 sollte es auch so funktionieren:

    Code:
    Select ...
    Int(VarChar_Format(Timestamp_Format(Digits(Datum), 'YYYYMMDD') + 1 Day, 'YYYYMMDD'))
    From ...
    Ab 7.2:
    Kann man's dann etwas vereinfachen:
    Code:
    Select ...
    Int(Date(Timestamp_Format(Digits(NumDatum), 'YYYYMMDD') + 1 Day))
    From ...
    Birgitta
    Birgitta Hauser

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

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.269
    Schön, wer V7ff hat, wenn man noch auf V5R2 bis V6R1 arbeitet.
    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
    Aug 2001
    Beiträge
    2.879
    Glaubst Du ich kann auf 7.xx arbeiten?
    Das hindert mich dennoch nicht zu wissen, was alles möglich ist und mich ggf. darüber aufzuregen, dass ich es nicht nutzen darf.
    Ich muss auch noch alles auf die V5-Versionen umwandeln ... und manchmal darf ich dann auch Programme in doppelter Ausführung erstellen! Gerade erst gestern musste ich 2 Varianten für ein (SQL-)Programm schreiben, damit die Kunden, die Release 7.xx haben nicht unter denen leiden müssen, die sich keinen Upgrade gönnen.

    Release V5R4 ist inzwischen über 10 Jahre alt!
    Wer hat noch PCs bzw. die entsprechende Software die genauso alt oder älter sind am laufen???
    Nur an dieser Stelle rumzujammern nutzt nix! Diejenigen, die sich nicht bewegen lesen auch keine aktuellen Artikel oder Blogs oder Foren.

    Birgitta
    Birgitta Hauser

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

  12. #12
    Registriert seit
    Jan 2007
    Beiträge
    909
    Gerade erst gestern musste ich 2 Varianten für ein (SQL-)Programm schreiben, damit die Kunden, die Release 7.xx haben nicht unter denen leiden müssen, die sich keinen Upgrade gönnen.
    OT ... und ich liebe das neue "Free" Format TR7, auch wenn ich anfangs sehr skeptisch war. /OT
    kf

Berechtigungen

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