Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Суммировать время [D5, IB6.x]


SONY ©   (2002-04-23 15:12:00) 

Как суммировать поле типа Time
т.е. такое не проходит select sum(systime) from mytimes.
Пытался так
var Sumtime:TTime
SumTime := StrToDate("00:00:00")
IBTable1.First
while not IBTable.eof do
begin
SumTime := SumTime+IBTable["SYSDATE"]
IBTable.Next
end;
Считает не правильно


Alex PC   (2002-04-24 13:50:00) [1]

SONY: очевидно количество набежавших дней умножить на 24 часа и прибавить ко времени ...


Lusha   (2002-04-24 13:19:00) [2]

Информация к размышлению...
Тип TTime он же TDateTime он же double, хранит в целой части количество секунд начиная с некотрого момента времени(догадайтесь с какого :) ) - дробная часть - доли секунд... :)


SONY   (2002-04-24 13:09:00) [3]

А кажется понял, а как сделать чтоб он мне показал например 128часов 25минут 30 секунд или а лучше 128:25:30


Anatoly Podgoretsky   (2002-04-24 13:03:00) [4]

Ну как по твоему, что покажет TimeToStr(Sumtime);


Lusha   (2002-04-24 12:56:00) [5]

То есть у Вас данных на 10 суток, а вы его через TimeToStr смотрите и возмущаетесь? :)


SONY   (2002-04-24 12:42:00) [6]

около 1500


Anatoly Podgoretsky   (2002-04-24 12:40:00) [7]

И количечтво записей конечно меньше 160?


SONY   (2002-04-24 12:29:00) [8]

А вот и исходник

procedure TForm1.Button1Click(Sender: TObject);
var Sumtime:TTime;
begin
SumTime := StrToTime("00:00:00");
IBTable1.First;
while not IBTable1.Eof do
begin
SumTime := SumTime+IBTable1["SYSTIME"];
IBTable1.Next
end;
Caption := TimeToStr(Sumtime);
end;


SONY   (2002-04-24 12:22:00) [9]

каждая запись ~9-10 минут умножаем на кол. записей и получаем примерный результат а используя код приведнный выше результат в несколько раз меньше


Lusha   (2002-04-23 15:51:00) [10]

Гы-гы. А с чем сравниваете реальный результат?


Johnmen   (2002-04-23 15:40:00) [11]

так тоже делал суммирует неправильно

Можно исходничек ?



SONY   (2002-04-23 15:34:00) [12]

сделал так
var MyString: TString;
begin
...
MyString.Add(IBTable["SYSTIME"];
...
MyString.SaveToFile(..)

Потом этот файл открыл в Excel и суммировал и получил реальный результат


Lusha   (2002-04-23 15:31:00) [13]

так тоже делал суммирует неправильно

Как Вы это определяете?


SONY   (2002-04-23 15:27:00) [14]

так тоже делал суммирует неправильно


Johnmen   (2002-04-23 15:24:00) [15]

var Sumtime:TDateTime
...
SumTime := IBTable["SYSDATE"]; - для первой записи
....
дольше в цикле :
...
SumTime := SumTime+IBTable["SYSDATE"];
...


Наверх

Титульная страница Поиск, карта сайта Написать письмо