Datastage: преобразование строки в метку времени в миллисекунды

Я пытаюсь вставить метку времени с миллисекундами в базу данных. Я пробовал следующие шаги, но мне не повезло.

  • Расширьте значение поля до миллисекунд с длиной 26 и масштабом 3.

  • Используется StringToTimestamp(timestampInString,"%yyyy-%mm-%dd %hh:%nn:%ss.3"), результирующее нулевое значение на выходе.

  • Отметка времени по умолчанию в свойствах задания изменена на %yyyy-%mm-%dd %hh:%nn:%ss.3

Дизайн :

Последовательный файл --> TX --> пункт назначения (файл SQL/Seq)

Не могли бы вы помочь с решением для этого?


person Learner    schedule 24.03.2018    source источник
comment
Пожалуйста, предоставьте код   -  person Burhanuddin Rashid    schedule 24.03.2018
comment
StringToTimestamp(timestampInString,%yyyy-%mm-%dd %hh:%nn:%ss.3) для типа overcast..   -  person Learner    schedule 24.03.2018


Ответы (3)


То, что вы пробовали, пока выглядит хорошо, за одним исключением:

length 26 and scale 3

Например, используя Db2, вам нужно будет указать длину 26, точность 6. 26 и 3 не подходят, поскольку

%yyyy-%mm-%dd %hh:%nn:%ss имеет длину 20

Также необходимо указать микросенонды в расширенном атрибуте.

Попробуйте и предоставьте более подробную информацию о целевой системе, если у вас все еще есть проблемы.

person MichaelTiefenbacher    schedule 24.03.2018
comment
Я пробовал цель как SQL и последовательный файл, но результат имел .000 вместо значения. - person Learner; 25.03.2018
comment
Вы указали микросекунды в определении таблицы между типом данных и длиной? Это действительно важно и должно быть сделано на всем пути от источника к цели. - person MichaelTiefenbacher; 25.03.2018

попробуйте команду ниже на этапе трансформатора и установите целевой тип данных в соответствии с требованием, это даст требуемый результат:

StringToTimestamp(Columnname,"%yyyy-%mm-%dd %hh:%nn:%ss.3")
person Sukriti Singh    schedule 02.04.2018

Самое главное — переопределить настройки NLS по умолчанию в задании с ожидаемым форматом (%yyyy-%mm-%dd %hh:%nn:%ss.3), которое вы уже выполнили.

Теперь для части микросекунд, которая не отображается, вы можете включить расширенный атрибут «Микросекунды» для поля в используемом целевом этапе.

Также вы можете сослаться на эту ссылку от IBM, которая объясняет подобный сценарий

person SreedeepS    schedule 03.04.2018