|
Timestamp: как правильно узнать, сколько прошло времени? ;)
|
|||
---|---|---|---|
#18+
Короче, надо с помощю хранимой процедуры узнать сколько времени работал некий агрегат, если известно время когда его включили, и время, когда его отключили. Делал так: (в цикле по выключениям) Sigma_off=Sigma_off+(EventTime-Start); (в цикле по включениям) Sigma_on=Sigma_on+(EventTime-Start); TotalTime=Sigma_off-Sigma_on; Suspend; На первой же попытке выполнить етот код IBExpert ругаеться "Expression evaluation not supported.". В чем дело? Сервер Firebird 1.0.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2002, 17:41 |
|
Timestamp: как правильно узнать, сколько прошло времени? ;)
|
|||
---|---|---|---|
#18+
DateDiff(second,Start,EventTime) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2002, 17:48 |
|
Timestamp: как правильно узнать, сколько прошло времени? ;)
|
|||
---|---|---|---|
#18+
Нету такой функции :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2002, 18:00 |
|
Timestamp: как правильно узнать, сколько прошло времени? ;)
|
|||
---|---|---|---|
#18+
Извиняйте, не посмотрел тему форума - я из MS SQL ... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2002, 19:23 |
|
Timestamp: как правильно узнать, сколько прошло времени? ;)
|
|||
---|---|---|---|
#18+
TIMESTAMP по своей сути строковый формат и CAST(TS as Integer) не поможет. В то же время в WinAPI есть функции, переводящие из строки с датой-временем в некое числовое выражение. Вот их и надо задекларировать как внешние функции и вызывать с ними. Лучше всего сделать свой DLL, объявляющие эти функции, дай бог не соврать из USER.EXE (Win95/98) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2002, 16:18 |
|
Timestamp: как правильно узнать, сколько прошло времени? ;)
|
|||
---|---|---|---|
#18+
TIMESTAMP не строковый, а совместимый со строковым. На самом деле это DOUBLE PRECISSION и разница в день там равна 1, в час - 0,041666666, в секунду - 0,000011574 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2002, 17:26 |
|
Timestamp: как правильно узнать, сколько прошло времени? ;)
|
|||
---|---|---|---|
#18+
Проблема таки-решилась... разность двух дат: Days=cast((cast(EventTime as Timestamp)- cast(Start as Timestamp))as double precision); результат - кол-во дней между Timestamp'ами Start и EventTime. Изменение даты: CAST(cast('1999-11.11 21:51:00.0' as Timestamp) + (CAST(Increment AS FLOAT) / CAST((24 * 60 * 60) AS FLOAT) ) AS TIMESTAMP) Добавить Increment секунд к 1999-11.11 21:51:00.0. P.S. Кто бы это ни придумал, он - <skipped>. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2002, 17:28 |
|
|
start [/forum/topic.php?fid=40&msg=32056446&tid=1581139]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 184ms |
0 / 0 |