![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение разницы во времени в IB [IB6.x]
Ura © (2002-02-01 15:43:00)Цель - получить разницу во времени между датами в секундах в IB.
Работал через Delphi - все ОК. Перенашу процедуру на сервер -
TIMESTAMP1 - TIMESTAMP2 = TIMESTAMP ан нет такой операции - IB уходит в аут...
1. Не хочу делать через UDF. (пока; вызывается будет много раз)
2. Не хочу разбирать на год, месяц, день и т.д. и проверять. (правильно, но много кода)
Ura (2002-02-01 16:24:00) [1]> Johnmen ©
Немного обшибся со скобками НО РАБОТАЕТ. Темный, я темный. Или ленивый. В общих доках по этому - null... Хотел уже побайтно проверять первые 32 бита и вторые - выручил....
Johnmen (2002-02-01 16:11:00) [2]главное, чтобы работала, а уж переполнения не будет (если конечно разница < 1 000 000 000 лет :))
Ura (2002-02-01 16:07:00) [3]А переполнения не будет - если разница большая?
Digitman (2002-02-01 15:59:00) [4]>>"Не хочу делать через UDF"
Ну и напрасно) .. в UDF метка времени запросто переводится из формата IB в формат Паскаля (и наоборот), и творить с ней можно там уже все, что угодно, в т.ч. и решать твою задачу
Johnmen (2002-02-01 15:54:00) [5]А так разве не работает :
SELECT CAST((CAST((TIMESTAMP1 - TIMESTAMP2 ) AS float))*24*60*60) AS numeric(15,0) AS <секунды> FROM ...