Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
ВнизКак описать в дельфе формат числа - длинное время? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c