powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нарезка по времени данных
2 сообщений из 2, страница 1 из 1
Нарезка по времени данных
    #33486989
puzzle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
есть триггер который делает нарезку данных по минуте.
Необходимо сделать нарезку по 15 минутам.
(В дальнейшем необходимо будет реализовать в виде процедуры с этим параметром)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
declare
  tts_ timestamptz;
begin

  tts_ = date_trunc( 'minute', new."TTS" );

  update "ms_tod_min" set
    "OPEN" = case
      when new."TTS" < "TTS_OPEN" then new."LAST"
      else "OPEN" end,
    "HIGH" = case
      when new."LAST" > "HIGH" then new."LAST"
      else "HIGH" end,
    "LOW" = case
      when new."LAST" < "LOW" then new."LAST"
      else "LOW" end,
    "CLOSE" = case
      when new."TTS" > "TTS_CLOSE" then new."LAST"
      else "CLOSE" end,
    "VOL" = "VOL"+new."VOLLOT",
    "TTS_OPEN" = case
      when new."TTS" < "TTS_OPEN" then new."TTS"
      else "TTS_OPEN" end,
    "TTS_CLOSE" = case
      when new."TTS" >= "TTS_CLOSE" then new."TTS"
      else "TTS_CLOSE" end
    where "TTS"=tts_ and "NAME"=new."NAME";
  if not found
  then

    insert into "ms_tod_min"
      ( "NAME", "TTS",
        "OPEN", "HIGH", "LOW", "CLOSE", "VOL",
        "TTS_OPEN", "TTS_CLOSE" )
      values( new."NAME", tts_,
        new."LAST", new."LAST", new."LAST", new."LAST", new."VOLLOT",
        new."TTS", new."TTS" );
  end if;
  return null;
end

Заранее благодарен.
...
Рейтинг: 0 / 0
Нарезка по времени данных
    #33487180
puzzle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам додумал

Код: plaintext
  tts_ = date_trunc('day',new."TTS")+(extract('epoch' from new."TTS" - date_trunc('day',new."TTS"))::int/( 60 * 5 )* 5  || ' min')::interval;

Это реализовано в качестве триггера на встаку, а каким образом можно это сделать в виде процедуры с параметром.

Заранее благодарен.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нарезка по времени данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]