Период при подсчете среднего значения
Доброго дня!
Прошу помощи со скриптом и функцией GetMeanValueFromDB. Необходимо подсчитать среднее значение из БД с начала часа, т.е. с ЧЧ-00-00 до ЧЧ-ММ-СС. По примеру из документации значение за стуки получается посчитать без проблем. Текущее время к формату ЧЧ-00-00 удается привести скриптом. А вот подсунуть это значение как начало периода не могу. Далёк от программирования, надеюсь ткнете носом.
Заранее благодарю!
Ответ
День добрый.
Var
beginData, endData: TDate;
Begin
beginData := EncodeDate(2023, 06, 19) + EncodeTime(12, 00, 0, 00);
endData := EncodeDate(2023, 06, 19) + EncodeTime(13, 00, 00, 00);
end.
https://simplight.ru/manual_next/funktsii-dlya-raboty-s-datoy-i-vremenem/encodedate
https://simplight.ru/manual_next/funktsii-dlya-raboty-s-datoy-i-vremenem/encodetime
Благодарю за ответ! Это немного не то, что мне нужно.
Видимо не сильно подробно написал вопрос. Попробую еще раз.
Нужен скрипт, который будет выводить среднее значение с начала часа до текущего момента в канал.
Пример:
Сейчас 13 часов 16 минут 28 секунд.
beginData должна принять значение 13-00-00, endData - 13-16-28.
Var
res: Double;
beginData, endData: TDate;
nameChannel: String;
Begin
nameChannel := 'Данные 1';
beginData := ?????????;
endData := now();
res := GetMeanValueFromDB(beginData, endData, nameChannel);
WriteValue('ChannelAverage', FloatToStr((round(res*100))/100));
end.
Скрипт выполняется циклически, постоянно обновляя значение канала 'ChannelAverage'.
Соответственно при смене часа значение beginData должно смениться на 14-00-00
Var Hour, Min, Sec, MSec: Word; beginData, endData: TDate; Begin DecodeTime(now, Hour, Min, Sec, MSec); beginData := Trunc(now) + EncodeTime(Hour, 00, 0, 00); endData := now; end.
Сервис поддержки клиентов работает на платформе UserEcho
День добрый.
https://simplight.ru/manual_next/funktsii-dlya-raboty-s-datoy-i-vremenem/encodedate
https://simplight.ru/manual_next/funktsii-dlya-raboty-s-datoy-i-vremenem/encodetime