Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Как описать в дельфе формат числа - длинное время?   Найти похожие ветки 

 
Julya ©   (2003-04-01 15:09) [0]

например - 49:15:00, это 2 суток, 1 час и 15 минут? Обычный формат для времени не учитывает сутки (((. Мастера, подскажите пожалуйста, если знаете!!!


 
sniknik ©   (2003-04-01 15:35) [1]


Эквивалентные типы данных ANSI SQL
В следующей таблице перечислены типы данных ANSI SQL, эквивалентные им типы данных языка SQL ядра базы данных Microsoft Jet и допустимые синонимы. Кроме того, представлены эквивалентные типы данных Microsoft® SQL Server™.

Типы данных | Типы данных SQL | Синоним | Типы данных
ANSI SQL | Microsoft Jet | | Microsoft SQL Server
.... | | |
| | |
DATE, TIME, | DATETIME | DATE, TIME | DATETIME
TIMESTAMP | (см. «Примечания»)|
....


табличка из хелпа, смысл (если непонятен), в Access, что дата, что тайм все равно дататайм.
а уж как это понимать "49:15:00" или "2 суток, 1 час и 15 минут" твое личное дело.


 
Julya ©   (2003-04-01 15:52) [2]

Ну завела я переменную T типа DATATIME, в нее пишу разность двух величин типа DATATIME. Но в Т обрезается количество суток, то есть если разность равна 49:15:00, у меня показывается 1:15:00...
В экселе есть такой формат времени, а вот в аксессе и дельфе не могу найти....(((
Мне потом эту разность надо суммировать по записям....


 
sniknik ©   (2003-04-01 16:10) [3]

> Но в Т обрезается количество суток
ни в коем случае, если тип действительно DATATIME, и работаеш с функциями возвращающими/принимаюшими DATATIME а не Time.

(я правильно понял "Т" и "показывается" это уже в дельфях?)

> а вот в аксессе и дельфе не могу найти
отсеки дробную часть от переменной DATATIME, это будет количество суток, умножай на 24 и представляй (показывай) как хочется.

и лутше не используй прямых операций (+ -...) над датами (если не понимаеш как они устроены), есть функции для работы с ними. (CompareDateTime, DaysBetween... и т.д.)


 
Julya ©   (2003-04-01 16:21) [4]

Ты прав, количество суток действительно не обрезается, оно лежит в аксессе в виде "01.01.1900 1:15:00" и когда я вывожу в дельфе, выводится только "1:15:00". И никак не получается вывести нормально(как в Экселе).
Я уже отсекала, умножала, представляла, там где это возможно, НО пользователь хочет видеть грид с автоматической суммой по этому самому полю (формата "полного" времени)...И в этом вся проблема...Я бы представила ему это поле в виде строчки, а сумма?? Придется делать ручками ?((


 
sniknik ©   (2003-04-01 16:29) [5]

Julya © (01.04.03 15:52)
> В экселе есть такой формат времени
специально глянул, нет там такого формата, есть представление в таком виде, а тип тот же дататайм.
(при перемещении по таким записям показаваются вверху в редактировании правильно дататаймом, и по F2 дает редактировать тоже в правильном формате)

Julya © (01.04.03 16:21)
> И никак не получается вывести нормально(как в Экселе). Я уже отсекала, умножала, представляла, там где это возможно
ну вот другое дело, неполучается так как хочется это понятно. (почему сразу было с этого не начать?)

Придется делать ручками ?((
наверняка ручками, на onGetText у поля можно показать любой свой формат. попробуй.


 
Julya ©   (2003-04-01 16:35) [6]

Спасибо, попробую!
А как было бы просто - поставить автоматическую функцию суммы в гриде и все!!!(


 
Proxvost   (2003-04-01 16:48) [7]

С полным форматом данных у меня было следующее.
dt1,dt2:tdatetime;lt:tdatetime (или double)

d11 и dt2 - содержат данные полной даты и времени (**.**.** **:**:**)

lt:=abs(dt1-dt2)

trunc(lt) - есть разность дней между датами
time(lt) - есть временная разность

это в общем то только для разности годится. Мне в общем то для другого и не нужно было, возможно пригодится тебе.

С уважением Прохвост


 
Julya ©   (2003-04-01 16:55) [8]

Прохвост, мне нужно просуммировать эту "разность" -) и представить ее в формате "полного времени"...
результат может получиться например такой - 521:12:00....
Все равно спасибо! Буду пыхтеть и стараться!


 
Proxvost   (2003-04-01 16:55) [9]

в догонку к предыдущему ответу, проверь этот вариант, на всякий случай, но тестовые данные которые я прогонял вроде ошибок не давали, учитывали в том числе и високосные годы и т.д. по крайней мере, у меня пока все работает нормально.

С уважением Прохвост


 
Proxvost   (2003-04-01 17:02) [10]

как время суммировать, тут конечно вопрос есть но это только как запрограммируешь ;-), а число суток складываешь как обычное целое или длинное целое число.

Формат данных которые мне были нужны представлял запись
d:longint - хранятся дни
t:tdatetime - хранится время (но учти складывать числа нерекомендую будут расхождения пока не разобрался в чем фокус)

мои данные выглядели так

дни ч. м. с.
124 12:45:00 ----> d=124 t=0,53125
3 10:00:00 ----> d=3 t=0,416666666664241
и т.д.




Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
7-54900
MAPIIIAJL
2003-02-23 12:09
2003.04.17
Вывод работы с COM портом в отдельный поток...


4-54961
SeNtiMeL
2003-02-15 14:55
2003.04.17
Вопрос по формам ! Или BringOnTop


1-54640
Vick
2003-03-31 16:06
2003.04.17
Округление


9-54394
Vladnt
2002-11-18 12:26
2003.04.17
Расчет доп. узлов поверхности.


3-54518
Vadimkp
2003-03-31 16:26
2003.04.17
Редактирование запросов Access