Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли складывать DateTime поля...


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо