[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2002
    Beiträge
    1.121
    Danke!

    Das war es

    PHP-Code:
    Create Function MyLib/DAT_DiffDat1 Dec(80), Dat2 Dec(80) ) 
           
    Returns Decimal (60)                                     
           
    Language sql                                               
    Begin                                                             
    declare EXIT HANDLER FOR SQLEXCEPTION return 0;                   
    Return                                                            
     
    Days(Date(SubStr(Digits(Dat1), 14Concat '-' Concat           
               SubStr
    (Digits(Dat1), 52Concat '-' Concat           
               SubStr
    (Digits(Dat1), 72) ))                          
    -
    Days(Date(SubStr(Digits(Dat2), 14Concat '-' Concat           
               SubStr
    (Digits(Dat2), 52Concat '-' Concat           
               SubStr
    (Digits(Dat2), 72) ));                         
    end 

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das geht auch einfacher:

    days(date(char(Dat1 * 1000000))) - days(date(char(Dat2 * 1000000)))

    Die Funktion Date erlaubt auch einen Timestamp in der Form JJJJMMTTHHMMSS.
    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
    May 2002
    Beiträge
    1.121
    Gut werde ich umbauen.

    (aber das Beispiel hatte ich auch mal von dir ;-) )
    http://newsolutions.de/forum-systemi...erenz-in-Tagen

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Man lernt nie aus und SQL wird von Release zu Release besser. Das ISO-Datum galt noch für V4!
    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 2001
    Beiträge
    20.696
    Nachtrag:
    Ich habe mir mal eine VBA-ähnliche Funktion gebaut:
    DATESERIAL(Year as integer, Month as Integer, Day as integer) as Date
    return date('0001-01-01') + (year - 1) Years + (Month - 1) months + (day - 1) days;
    Fehlerabfangen falls Über-/Unterlauf.

    Diese ist zum Rechnen manchmal ganz gut.
    Beispiel:
    Dateserial(Year(mydate), Month(Mydate) + 1, 0) = immer der Letzte des Monats
    Ich denke da gibt es immer wieder Anwendungen, auch z.B. bei alten Strukturen mit getrennten Datumfeldern.

    Ggf. kann man ja noch einen "case when Year < 100 then case when Year < 40 then year + 2000 else year + 1900 end else year end" einbauen um 2-stellige Jahre zu berücksichtigen (wie Microsoft auch).
    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

Similar Threads

  1. Prüfen, ob ein Objekt existiert
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 22
    Letzter Beitrag: 22-08-14, 11:43
  2. API QMHRCVM Prüfen ob Nachricht bereits beantwortet ist
    By oulbrich in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 18-11-13, 08:52
  3. TCP/IP Port prüfen
    By wdom in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 19-05-03, 13:58
  4. prüfen ob STMF in IFS-Verzeichnis vorhanden
    By CZE425 in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 23-10-02, 11:56
  5. TCP/IP FTP prüfen ob Rechner an ist
    By malzusrex in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-07-02, 10:07

Berechtigungen

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