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

问题描述 投票:0回答:3

我正在尝试将毫秒时间戳插入数据库。我尝试按照以下步骤操作,但没有任何运气。

  • 将字段值扩展为毫秒,长度为 26,小数位数为 3。

  • 使用 StringToTimestamp(timestampInString,"%yyyy-%mm-%dd %hh:%nn:%ss.3"),输出结果为空值。

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

设计:

顺序文件 --> TX --> 目的地(SQL/Seq 文件)

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

string timestamp milliseconds datastage
3个回答
0
投票

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

length 26 and scale 3

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

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

指定微秒是扩展属性也是必要的。

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


0
投票

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

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

0
投票

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

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

您也可以参考 IBM 的这个链接,它解释了类似的场景

© www.soinside.com 2019 - 2024. All rights reserved.