Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-54722
asdqwer
2003-04-05 07:42
2003.04.17
Символы шрифта


14-54883
Supreme 2
2003-04-01 19:24
2003.04.17
Как установить ICQ, если используется прокси-сервер


1-54660
Alex Digy
2003-04-04 13:54
2003.04.17
Передача параметров процедуры в DLL


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


3-54452
Противник войны
2003-03-27 09:50
2003.04.17
Хранимая процедура





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский