Datastage:字符串到时间戳到毫秒转换

时间:2018-03-24 03:47:15

标签: string timestamp milliseconds datastage

我试图将毫秒数的时间戳插入数据库。我尝试了以下步骤,但没有运气。

  • 将字段值扩展为毫秒,长度为26,比例为3.

  • 使用StringToTimestamp(timestampInString,"%yyyy-%mm-%dd%hh:%nn:%ss.3"),在输出中产生空值。

  • 将作业属性中的默认时间戳修改为%yyyy-%mm-%dd%hh:%nn:%ss.3

设计:

顺序文件 - > TX - > destination(SQL / Seq文件)

你能帮忙解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

到目前为止,您尝试的内容看起来很不错,只有一个例外:

length 26 and scale 3

例如,使用Db2,您需要指定长度为26的精度6。 26和3不适合

%yyyy-%mm-%dd %hh:%nn:%ss的长度为20

指定微型注射器也是必要的。

如果仍有问题,请尝试并提供目标系统的更多详细信息

答案 1 :(得分:0)

在变压器阶段尝试以下命令并根据要求设置目标数据类型,它将给出所需的结果:

StringToTimestamp(Columnname,"%yyyy-%mm-%dd %hh:%nn:%ss.3")

答案 2 :(得分:0)

最重要的是覆盖您已完成的预期格式(%yyyy-%mm-%dd%hh:%nn:%ss.3)作业中的默认NLS设置。

现在,对于未显示的微秒部分,您可以为使用的目标阶段中的字段启用Microseconds扩展属性。

此外,您可以参考IBM的link来解释类似的情况