![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
преобразования типов [D7, fb 1.5]
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)