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

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

преобразования типов [D7, fb 1.5]


Страницы:   1 2

stud ©   (2004-08-04 16:46:00) 

господа как в фб 1,5 получить разницу во времени между двумя временными значениями.
вычитать напрямую не получается при использовании cast тоже ерунда.


stud   (2004-08-04 17:49:00) [1]


> Johnmen ©   (04.08.04 17:44) [18]
> Поправка

ура заработало!


stud   (2004-08-04 17:47:00) [2]

сделал так:
t_delta=cast ((cast(T_UHOD as timestamp) - cast(T_PRIHOD as timestamp)) as timestamp);
delta=cast(t_delta as time); - переполнение при преобразовании  .... 0,0088333...
t_delta - timestamp


dtm   (2004-08-04 17:44:00) [3]

А если оба поля кастовать как DOUBLE PRECISION, отнимать один от другого, а затем уже обратно кастовать как TIMESTAMP?


Johnmen   (2004-08-04 17:44:00) [4]

Поправка
cast('00:00:00' as time)+
(cast(T_UHOD as time) - cast(T_PRIHOD as time))


stud   (2004-08-04 17:42:00) [5]


> cast('00:00:00' as time)+
> (cast(T_UHOD as timestamp) - cast(T_PRIHOD as timestamp))

эта штука на выходе дает 00:00:00


stud   (2004-08-04 17:38:00) [6]

там нету time, пытался вытаскивать часы и минуты отдельно и склеивать в строку ругается на втором экстракте


Соловьев   (2004-08-04 17:37:00) [7]


> нет. время принадлежит только одному дню

ну так ectract юзай


stud   (2004-08-04 17:35:00) [8]

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


Соловьев   (2004-08-04 17:33:00) [9]


> (cast(T_UHOD as timestamp) - cast(T_PRIHOD as timestamp))

если поле Time там хранится только время, то приведение к дате+время ничего не даст - так как одно время могло принадлежать сегодня а другое 10 числу прошлого месяца. Разноть даст непонятно что...


Johnmen   (2004-08-04 17:30:00) [10]

>stud   (04.08.04 17:25) [9]

cast('00:00:00' as time)+
(cast(T_UHOD as timestamp) - cast(T_PRIHOD as timestamp))


Соловьев   (2004-08-04 17:28:00) [11]


> cast(cast(T_UHOD as timestamp) - cast(T_PRIHOD as timestamp)
> as time)

понятно не должно тип поля должен быть дата или таймстамп!!!


Johnmen   (2004-08-04 17:27:00) [12]

>stud

И никогда не пройдет, т.к. преобразование вр.интервалов во времена НЕДОПУСТИМО, ибо несовместимые типы.


stud   (2004-08-04 17:25:00) [13]

и не должно.
может кто подскажет как это реализовать?


stud   (2004-08-04 17:24:00) [14]

cast(cast(T_UHOD as timestamp) - cast(T_PRIHOD as timestamp) as time)
такая конструкция тоже не проходит


stud   (2004-08-04 17:18:00) [15]

ясно. сечас попробую


Соловьев   (2004-08-04 17:15:00) [16]


> time

а надо date или timestamp - так как разность этих типов даст разность в днях , а ее уже можно привести к времени. А в твоем случае не понятно что получается...Если это один и тот же день, тогда extract тебе поможет а если разные даты, то фигня получится...


Johnmen   (2004-08-04 17:14:00) [17]

Время и временные интервалы суть разные вещи.
Разница между вр.значениями есть вр-ой интервал.
Для дат - это сутки, для времени - секунды, для timestamp - типа TDateTime


stud   (2004-08-04 17:13:00) [18]

time
напрямую tim1-tim2=7200.000


Соловьев   (2004-08-04 17:07:00) [19]


> cast (time1-time2 as time)
> cast (time1 as time)-cast(time2 as time)

time1, time2 - какого типа?


stud   (2004-08-04 16:50:00) [20]

cast (time1-time2 as time)
cast (time1 as time)-cast(time2 as time)


Страницы:   1 2

Наверх

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