Помогите разобраться со следующей проблемой: В таблице БД ORACLE есть 2 поля времени, значения для которых ODBC драйвер ORACLE требует как строки timestamp. В ТМ же время представлено форматом unixtime, поэтому конвертирование времени из одного формата в другой неизбежно. Оптимальным решением было выбрано конвертирование времени на стороне БД. Функция "unixts_to_date" принимает тип number, и возвращает необходимую строку. Вопрос в том, как теперь эту функция правильно использовать.
подскажите, в чём проблема. Заранее спасибо.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Нельзя ли по трассировщику ODBC-драйвера уточнить как именно интерпретируется Ваш SQL-запрос ODBC-драйвером и какие обшибки он обнаруживает?
Posted by i.Sineev (Участник № / Member № 4448) on :
В аргумент (IN, UDINT) канала CALL типа БД из атрибута 45 канала FLOAT попадает строковое представление атрибута 45.
В случае аналогичной передачи этого атрибута в аналогичный аргумент канала CALL типа program в аргумент программы попадает именно unixtime.
Как такое может быть? Выдержка из справки:
quote: (45, T) Время изменения – в этот атрибут записывается время пересчета/отработки канала; атрибут возвращает 4-байтовое число секунд с 01.01.70;
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Во внутренних интерфейсах Trace Mode 6 дата-время передается как 4-байтовое число секунд с 01.01.70. В SQL-запросах - в строковом представлении.