Nikolay пишет:
"RUST" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
Nikolay пишет:
Что-то я наверное пропустил, но как получить из '28.04.2008 01:01'-'27.04.2008 00:00' просто время '25:01' ?
Все в хранимой процедуре на 2.0.3 птице.
примерно так?

select ((cast('28-APR-2008 01:01' as timestamp))-(cast('27-APR-2008 00:00' as timestamp)))*24.000
from rdb$database



в принципе подходит, но тут сталкиваюсь с проблемой:

        if (datetime_real_begin<datetime_real_end) then begin
          time_real_work = тут твой пример

select extract(hour from :time_real_work) from rdb$database into :hour2; select extract(minute from :time_real_work) from rdb$database into :min2; select extract(second from :time_real_work) from rdb$database into :sec2;

          time_real_work_sec = sec2 + (Min2*60) + (Hour2*3600);
          time_real_work_hour = Hour2;
        end

и вот на преобразовании типов я и влетаю.
Как его правильно оформить?

ты учти что мой пример всего-то возвращает часовую разницу в датах
причем дробная часть не соответствует минутам, поэтому extract
из этого числа не имеет смысла. тебе нужно разбираться с суточной
разницей, те убрать "*24.000"
Целая часть числа это будут сутки. Дробная - часть суток

например
select ((cast('28-APR-2008 7:50' as timestamp))-(cast('27-APR-2008 00:00' as timestamp)))
from rdb$database
---> 1.3263888888889

1- сутки
0.3263888888889*24=7.8333333333336

7 часов

0.8333333333336*60=50.000000000016

50 минут






Ответить