This is topic Запись времени в базу ODBC in forum Архивирование в TRACE MODE / Data Logging in Trace Mode at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/10/t/000028.html

Posted by Alexey (Участник № / Member № 386) on :
 
Можно ли записать дату и время в базу ODBC, т.е. сформировать запрос типа "INSERT INTO MYTABLE (TIMESTAMP) VALUES({ts '####-##-## ##:##:##'})" и чтобы вместо символов # подставлялись значения каналов? Можно ли это сделать каким-либо другим способом?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
На данный момент есть два варианта:
1) Создать каналы типа день, месяц, год, час, секунда, минута (из FBD посылать в них соответствующие значения астрономических часов) и такие же поля в таблице, куда помещать значения этих каналов. Сформировать потом из этих данных полное время в СУБД - не проблема.
2) Создать в таблице поле - тип "дата" и в качестве настроек начального значения для него задать функцию, которая возвращает значение текущего времени (по крайней мере в MS Access это сделать можно). Канал для этого поля в ТМ создавать не нужно. Таким образом, когда Вы будете вставлять в такую таблицу новую запись или модифицировать уже существующую из ТМ через SQL-запрос, СУБД не найдя источника для этого поля отработает скрипт заданный для этого поля по умолчанию, т.е. поместит туда текущее время.
 
Posted by Alexey (Участник № / Member № 386) on :
 
Спасибо, что так быстро и полно ответили на вопрос
 
Posted by Tag (Участник № / Member № 34) on :
 
Что есть тип ДАТА или ВРЕМЯ? Это число с плавающей точкой, где целая часть - число дней c 1 января 100 г. (для продуктов Microsoft), а дробная часть - доля суток с 0 часов (12 дня соответствует 0.5)

Можно написал FBD, "упаковывающую" дату и время в число описанного выше формата. Такое число можно писать напрямую в поля БД с типом ДАТА или ВРЕМЯ либо передавать в ячейки Excel.

Правда есть одно "но": формат ДАТА-ВРЕМЯ занимает 8 байт, а канал ТМ5 - 4 байта, поэтому неудасться писать одним каналом полную метку времени, содержащую и дату и время. Приходится одним каналом писать дату, вторым - время. Соответсвенно должны быть 2 поля БД - одно для даты, другое для времени
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2