![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли складывать DateTime поля...
Aristarh © (2002-11-08 11:22:00)...в хранимых процедурах IB? IB Expert что-то ругается: expression evaluation not supported. Если складывать нельзя, то это огромный недостаток IB.
MMF (2002-11-08 15:18:00) [21]А если
:Total=0;
for select ID_User from w_seans
into :Id_user
do
begin
:UserTime=0;
Select (sum(D_end-D_Start) from W_Seans
where id_user=:id_user
into :UserTime;
:Total=Total+UserTime;
end
suspend
Aristarh (2002-11-08 15:11:00) [22]>Wolf226 © (08.11.02 14:56)
>Время проведенное в днях пользователем за программой
Немного не то. Нужно время не отдельно взятого клиента, а суммарное время работы всех клиентов в часах, минутах, сек.
Wolf226 (2002-11-08 14:56:00) [23]Предположим - есть 2 поля в таблице сеансов W_Seans
типа date D_Start и D_End (ну там еще ID, ID_USER)
Время проведенное в днях пользователем за программой
select sum(D_end-D_Start) from W_Seans
where id_user=:id_user
Aristarh (2002-11-08 14:40:00) [24]Это еще один сегодняшний пост на эту тему, в нем объясняется задача:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1036744808&n=1
Wolf226 (2002-11-08 14:14:00) [25]Суммы двух дат не существует.
А что за задача вообще у тебя?
Aristarh (2002-11-08 14:05:00) [26]>Wolf226 © (08.11.02 13:24)
>Откуда берется Seconds?
Передается в хранимую процедуру как DateTime
>Разница двух Дат - double precision
А сумма двух дат тоже double precision?
Wolf226 (2002-11-08 13:40:00) [27]Разница двух Дат - double precision
Wolf226 (2002-11-08 13:24:00) [28]Откуда берется Seconds?
Aristarh (2002-11-08 13:05:00) [29]>Wolf226 © (08.11.02 13:00)
Мне нужно складывать время. Можно ли сделать так:
update Statistics
set WorkTime = WorkTime + cast(:Seconds as double precision)
where ...
Здесь Seconds - переменная DateTime
Wolf226 (2002-11-08 13:00:00) [30]Смысла нет в этой операции, поэтому она не поддерживается.
Если считать как ты то даты можно было бы и умножать и делить, хотя это бессмыслено.
Единственно, жаль, что не поддерживается AVG для поля Date.
Но это можно обойти так
select cast("1.1.1900" as date)+avg( datein-"1.1.1900") from lt_listofstaff_itr
Aristarh (2002-11-08 12:33:00) [31]>Wolf226 © (08.11.02 12:13)
>Ну что должно получится в результате "1-oct-2001"+"21-oct-2002" - a?
Да, но я считаю, что DateTime хранит значение даты и времени в виде десятичного числа. Поэтому вроде бы можно складывать.
Wolf226 (2002-11-08 12:13:00) [32]Ну что должно получится в результате "1-oct-2001"+"21-oct-2002" - a?
Другое дело вычитание
select cast("21-oct-2002" as date)-cast("1-oct-2001" as date) from rdb$database
получил 385
Aristarh (2002-11-08 11:37:00) [33]Печально... Никто не знает :(
На счетчике посетителей 900 с копейками, будем ждать хотя бы до 1500