[firebird sql] odejmowanie dat


(Wojtakus) #1

Witam

Problem jest następujący: mam datę rozpoczęcia operacji ZDARZENIECRM_1.DATA_STart i datę zakończenia operacji ZDARZENIECRM_1.DATA_STOP , zapisane w timstemp. Potrzebuję wynik ZDARZENIECRM_1.DATA_STOP - ZDARZENIECRM_1.DATA_STart tak aby pokazać w ile czasu upłynęło, dodam że wszystko dzieje się w obrębie jednego dnia.

 

kombinowałem żeby to tak zrobić

for
  SELECT ZDARZENIECRM_1.NRDOKZEw,
         ZDARZENIECRM_1.datawyst,
         ZDARZENIECRM_1.DATA_START, 
         ZDARZENIECRM_1.DATA_STOP, 
         KONTRAH_1.NAZWASKr
         
  
  FROM ZDARZENIECRM ZDARZENIECRM_1
        LEFT OUTER JOIN KONTRAH KONTRAH_1 ON (KONTRAH_1.ID_KONTRAH = ZDARZENIECRM_1.ID_KONTRAH)
        INNER JOIN UZYTKOWNIK UZYTKOWNIK_1 ON (UZYTKOWNIK_1.ID_UZYTKOWNIK = ZDARZENIECRM_1.ID_UZYTKOWNIK_WYK)
        INNER JOIN TYPZDARZCRM TYPZDARZCRM_1 ON (TYPZDARZCRM_1.ID_TYPZDARZCRM = ZDARZENIECRM_1.ID_TYPZDARZCRM)
        INNER JOIN ZDARZENIECRMUZYT ZDARZENIECRMUZYT_1 ON (ZDARZENIECRMUZYT_1.ID_ZDARZENIECRM = ZDARZENIECRM_1.ID_ZDARZENIECRM)
        INNER JOIN UZYTKOWNIK UZYTKOWNIK_2 ON (UZYTKOWNIK_2.ID_UZYTKOWNIK = ZDARZENIECRMUZYT_1.ID_UZYTKOWNIK)
        
  WHERE
        ((ZDARZENIECRM_1.DATAWYST >= :dod) and (ZDARZENIECRM_1.DATAWYST < :ddo))
        
  ORDER BY
         KONTRAH_1.NAZWASKR, ZDARZENIECRM_1.DATA_START
  
  INTO :numer,:dwys,:dsta,:dsto,:nazda,:status,:oper,:kontr
    DO
       /* :czas = round( (ZDARZENIECRM_1.DATA_STOP - ZDARZENIECRM_1.DATA_STart)*24*60) */
  
    SUSPEND;
END

(dr.boczek) #2

mam wrazenie ze moja odpowiedź zniknęła.

DATEDIFF()

(Wojtakus) #3

dzięki za pomoc zrobione :slight_smile: