我试图将毫秒数的时间戳插入数据库。我尝试了以下步骤,但没有运气。
将字段值扩展为毫秒,长度为26,比例为3.
使用StringToTimestamp(timestampInString,"%yyyy-%mm-%dd%hh:%nn:%ss.3"),在输出中产生空值。
将作业属性中的默认时间戳修改为%yyyy-%mm-%dd%hh:%nn:%ss.3
设计:
顺序文件 - > TX - > destination(SQL / Seq文件)
你能帮忙解决这个问题吗?
答案 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来解释类似的情况