|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
вычесления времени в dbgrid
Всем привет.Есть бд в акессе, ее присоединил и использовал Dbgrid чтоб она отображалась, есть 2 колонки с типом время\дата , нужно найти разницу во времени между этими колонками.В дельфи почему-то отображается дата и время , хотя в акссесе формат поставлен в виде времени, без даты. Как можно находить разницу во времени между 2 строками чтобы результат получался ввиде минут с типом integer?
|
#2
|
|||
|
|||
Цитата:
Дело в том, что Дельфи работает через тип TDateTime, в котором целая часть зарезервированна на дату, а дробная - на время. Соответсвенно, тебе надо привести целую часть к одинаковому значению (например, 0 , это если ты уверен, что временные отметки относяться к одному и тому же дню, но в резултате работы Дельфей там может стоять разная дата. Если все-таки там дата правильная, то ничего не надо делать. Для вычисления раницы, между дыумя значениями в минутах можно вызвать функцию MinutesBetween(). Вернет как раз все, что тебе надо. Не забудь про фокус с датой. а вообще, вызови хелп по этой функции и там можно щелкнуть на ссылку datetime routines и почитать о разных функциях. |
#3
|
|||
|
|||
спасибо ,я создал в adotable дполнительное вычесляемое поле , чтобы в него заносилась разница между 2 полями.написал следующий код:
adotable2raznica:=minutesbetween(adotable2n.asdate time,adotable2z.asdatetime); он возвращает значение int64 , и оно не может заносится в dbgrid потому что там нельзя выбрать такой тип поля, как быть? нужны эти значения чтобы строить графики по ним. |
#4
|
|||
|
|||
вот и ответ
ADOTable2raznica.asinteger:=strtoint(inttostr(minu tesbetween(adotable2n.asdatetime,adotable2z.asdate time))); |