Страница 98 из 157 ПерваяПервая ... 488896979899100108148 ... ПоследняяПоследняя
Показано с 971 по 980 из 1785

Тема: Вопросы по MasterSCADA 4D

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Добрый день.
    Подскажите как реализовать?
    Есть начальное время и текущее время в формате DT. Разница между текущим и начальным временем не более 12 часов.
    Есть время за которое проходит цикл в формате Time
    Необходимо узнать сколько циклов было в этот промежуток времени?

    Я так понимаю, что DT надо преобразовать в Time (функция DT_TO_TIME преобразует в формат *******d**h**m**s - как то еще надо убрать дни. Можно конечно еще разложить, а потом собрать что надо)
    а потом поделить Time (разница между текущим и начальным временем) на Time (время за которое проходит один цикл).

    Может кто подскажет как сделать проще и правильнее?

  2. #2

    По умолчанию

    Цитата Сообщение от it.lenin@preforma.ru Посмотреть сообщение
    Я так понимаю, что DT надо преобразовать в Time (функция DT_TO_TIME преобразует в формат *******d**h**m**s - как то еще надо убрать дни. Можно конечно еще разложить, а потом собрать что надо)
    а потом поделить Time (разница между текущим и начальным временем) на Time (время за которое проходит один цикл).

    Может кто подскажет как сделать проще и правильнее?
    Есть 3 варианта, перевести DT в TIME, первые два варианта на скрине1 Время.jpg упростил 1 Время 2.jpg

    1) Вариант попроще, конвертировать DT_TO_TOD, а потом TOD_TO_TIME
    T1:=TOD_TO_TIME(DT_TO_TOD(DT1));

    2) Немного сложней, конвертировать DT_TO_DWORD, извлечь время MOD 86400, и умножить на 1000 и уже конвертировать DWORD_TO_TIME
    T2:=DWORD_TO_TIME((DT_TO_DWORD(DT1) MOD 86400) *1000);

    3) Самый простой, для получения разницы времени t3 :TIME; просто вычесть DT0 - начальный из DT1- текущий. Скрин 1 Время 3.jpg
    t3:=DT1-DT0;
    Последний раз редактировалось kondor3000; 14.01.2024 в 23:07.

  3. #3

    По умолчанию Smart TV

    Добрый день.
    Кто то пытался вывести проект на просмотр на современный SMART TV через встроенный браузер?
    У меня не открывает проект, висит, потом появляется не активное окно "внимание" и все подвисает.
    Изображения Изображения
    Последний раз редактировалось it.lenin@preforma.ru; 18.01.2024 в 13:49.

  4. #4

    По умолчанию

    Цитата Сообщение от it.lenin@preforma.ru Посмотреть сообщение
    ***
    Это по нашей переписке скрины...112.png

    Действительно UTC...

  5. #5

    По умолчанию

    Цитата Сообщение от it.lenin@preforma.ru Посмотреть сообщение
    ---
    Корректировка часового пояса:
    IMG_20240115_203221.jpg

    Проверить нет возможности, но в самом sql работает.

  6. #6

    По умолчанию

    Все работает, огромное спасибо!!!!

  7. #7

    По умолчанию

    Цитата Сообщение от AlexBut Посмотреть сообщение
    Здравствуйте!
    Но размер таблицы и в целом БД не изменился-как был 13 ГБ так и остался?
    Я ожидал, что размер сильно уменьшится, но что-то не так?
    Странно, что Вы этого ожидали. Я бы наоборот - сильно удивился, если бы размер уменьшился. Хоть и никогда конкретно с PostgreSQL дела не имел. Вам надо доку по администрированию PostgreSQL читать.

  8. #8

    По умолчанию

    Хотя это уже не так принципиально, но почему так?
    А так пробовали?
    where source_time>= timestamp '2024-01-01 00:00:00'
    and source_time< timestamp '2024-01-10 00:00:00';
    или
    where source_time>= make_timestamp(2024,1,1,0,0,0)
    and source_time< make_timestamp(2024,1,10,0,0,0);
    Последний раз редактировалось onimor; 10.01.2024 в 08:16.

  9. #9

    По умолчанию

    Цитата Сообщение от onimor Посмотреть сообщение
    А так пробовали?

    или
    Пробовал но у source_time тип bigint

  10. #10

    По умолчанию

    Цитата Сообщение от AlexBut Посмотреть сообщение
    Пробовал но у source_time тип bigint
    Без учета часового пояса и правил перехода на летнее время:
    select * from public.data_raw where source_time > ((extract(epoch from timestamp '2024-01-10 00:00:00.0') + 11644473600) * 10000000)::bigint limit 100;

    С учетом часового пояса:
    select * from public.data_raw where source_time > ((extract(epoch from timestamp with time zone '2024-01-10 00:00:00.0+07') + 11644473600) * 10000000)::bigint limit 100;

    extract(epoch from timestamp with time zone '2024-01-10 00:00:00.0+07') - количество секунд с 01.01.1970 00:00:00 UTC по 10.01.2024 00:00:00 UTC+7

    11644473600 - количество секунд с 01.01.1970 00:00:00 UTC по 01.01.1601 00:00:00 UTC
    select extract(epoch from timestamp '1601-01-01 00:00:00.0');
    -11644473600 - берем по модулю

    10000000 = 1000000000/100 - число 100-наносекундных интервалов в одной секунде

Страница 98 из 157 ПерваяПервая ... 488896979899100108148 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы по СИ-8
    от aleksandr87 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 11.06.2016, 18:56
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  3. MasterScada v3.6 Основные вопросы
    от colorprint2008 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 24.12.2013, 15:50
  4. конвертация проекта из Masterscada 3.5 в Masterscada 3.4
    от Сергей_SPB в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 01.04.2013, 16:56
  5. Вопросы по трендам MasterSCADA
    от 42ia в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 26.06.2012, 10:58

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •