Конференция "Базы" » sum time [D7, IB6.x]
 
  • dolmat (24.05.12 12:18) [0]
    CREATE TABLE DVIGENIE (
    ..
    CHAS_ALL Time,
    ..
    );
    как вычислить сумму времени
    select sum(CHAS_ALL) from DVIGENIE ругается на невозможность
  • Anatoly Podgoretsky © (24.05.12 12:47) [1]
    > dolmat  (24.05.2012 12:18:00)  [0]

    a.. Type TIME stores the data on time to within a ten-thousand share of
    second. A range of possible values - from 00:00 AM up to 23:59.9999 PM.
    А сумма больше 23:59.9999
    Может попробовать сделать приведение к другому типу, например TIMESTAMP
  • dolmat (24.05.12 13:26) [2]
    >Anatoly Podgoretsky
    select
    sum(cast(DVIGENIE.CHAS_ALL AS TIMESTAMP))
    from DVIGENIE
    тож невозможно,

    а вот так срабатывает только надо потом вычисляемое поле делать.
    А ещё другая проблемы вылезла в
    group by  extract(MONTH from DVIGENIE.DAT_PL) as mons_d  нельзя

    select
    sum(extract(HOUR from DVIGENIE.CHAS_ALL)) as h_chas_all,
    sum(extract(MINUTE from DVIGENIE.CHAS_ALL)) as m_chas_all,
    sum(extract(HOUR from DVIGENIE.CHAS_DV)) as h_chas_dv,
    sum(extract(MINUTE from DVIGENIE.CHAS_DV)) as m_chas_dv,
    sum(extract(HOUR from DVIGENIE.CHAS_POGR)) as h_CHAS_POGR,
    sum(extract(MINUTE from DVIGENIE.CHAS_POGR)) as m_CHAS_POGR,
    sum(DVIGENIE.PROBEG_VSEGO) as PROBEG_VSEGO,
    sum(DVIGENIE.PROBEG_GRUZ) as PROBEG_GRUZ,
    sum(DVIGENIE.PROBEG_JPS) as PROBEG_JPS,
    sum(DVIGENIE.PER_GRUZ) as PER_GRUZ,
    sum(DVIGENIE.T_KM) as T_KM,
    sum(DVIGENIE.RASH_TOP_NORM) as RASH_TOP_NORM,
    sum(DVIGENIE.RASH_TOP_FAKT) as RASH_TOP_FAKT,
    SPR_TRANSP.UST_GPS, SPR_TRANSP.TOPLIVO, VID_TRANSP.ID_TRANSP, extract(MONTH from DVIGENIE.DAT_PL) as mons_d
    from DVIGENIE DVIGENIE
    left join SPR_TRANSP SPR_TRANSP on (DVIGENIE.ID_TRANSP=SPR_TRANSP.ID_TR)
    left join VID_TRANSP VID_TRANSP on (SPR_TRANSP.ID_VTR=VID_TRANSP.ID_VTR)
    group by SPR_TRANSP.UST_GPS, SPR_TRANSP.TOPLIVO, VID_TRANSP.ID_TRANSP,
    order by SPR_TRANSP.TOPLIVO, VID_TRANSP.ID_TRANSP
  • Cobalt © (24.05.12 13:48) [3]
    Надо Работать с тем, с чем надо работать, а с чем не надо - работать не надо.
    Время, как точку во времени, надо хранить как date/time
    А количество затраченного времени надо хранить как количество - в целых/дробных числах
  • dolmat (24.05.12 13:59) [4]
    >Cobalt
    fastreport нормально понимает и суммирует это поле, но у меня немного другой случай
  • Inovet © (24.05.12 14:27) [5]
    > [3] Cobalt ©   (24.05.12 13:48)
    > Время, как точку во времени, надо хранить как date/time А количество затраченного времени надо хранить как количество - в целых/дробных числах

    Или хранить начало и конец периода
  • Медвежонок Пятачок © (24.05.12 14:33) [6]
    fastreport нормально понимает и суммирует это поле, но у меня немного другой случай

    а сколько будет вчера + вчера?

    Это "позавчера", или же это некая дата в 4014 году?
  • Inovet © (24.05.12 14:35) [7]
    > [4] dolmat   (24.05.12 13:59)
    > но у меня немного другой случай

    Ты в этом поле не момент времени хранишь, а количество времени?
  • Anatoly Podgoretsky © (24.05.12 14:36) [8]
    > Inovet  (24.05.2012 14:27:05)  [5]

    Тайм такой и есть, хранится как число 1сек/10000 интервалов
    Если не удастся конвертировать в другой тип, то можно попробовать на клиенте
  • Медвежонок Пятачок © (24.05.12 14:44) [9]
    в любом случае диагноз - неправильно выбран тип данных.
 
Конференция "Базы" » sum time [D7, IB6.x]
Есть новые Нет новых   [119555   +66][b:0][p:0]