我必须导出时间戳记值并将其附加到现有日期字段中,然后将其填充到目标输出文件中。对于每个id字段和col3,这应该是唯一的。
我的输入
id行col1 col2 col3(mmddyyyy) 1 1 abc 123 01012018 1 2 cba 432 01012018 1 3 xyz 463 01012018 2 1条图321 02012018 2 2 abc 422 02012018 3 1特氟酸001 10052018 4 1小时963 03202018
对于以上给定的样本数据,目标输出字段应填充时间戳。对于每次运行的时间,小时(HH)值应从09 AM开始。
预期输出:
目标输出字段格式-MMDDYYYYHHMMSSmmm 哪里 MMDDYYY-col3
HH(小时)-应始终从09开始 MM(分钟)-起始值00和最大值60(达到60时将小时增加1,并将其重置为“ 00”)
SS(秒)-起始值00和最大值60(当达到60时将Minute减1,并将其重置为'00')
mmm(毫秒)-起始值000和最大值999(达到999时将秒数递增1,并将其重置为“ 000”)
如果需要我的问题,请告诉我。
创建了三个不同的变量,并为每个unque id&col3将其递增1。但是以某种方式,当MM或SS或mmm达到其最大限制时,我无法将其重置为00。需要进行经验转换
到目前为止我所做的,
v_MILLISECONDS =>
IIF(count_Id =1,v_MILLISECONDS=000,
IIF((ID != V_ID_PREV) AND (col3 != V_col3_PREV) AND (v_MILLISECONDS < 999),
v_MILLISECONDS=v_MILLISECONDS+1, v_MILLISECONDS)
)
v_SECONDS =>
IIF(count_Id=1,v_SECONDS=00,DECODE(TRUE
,v_MILLISECONDS<999, v_SECONDS
,v_MILLISECONDS=999, v_SECONDS=v_SECONDS+1
,v_MILLISECONDS>998, v_SECONDS=00
,v_SECONDS)
)
v_MINUTES =>
IIF(count_Id =1,v_MINUTES=00,DECODE(TRUE
,v_SECONDS<60, v_MINUTES
,v_SECONDS=60, v_MINUTES=v_MINUTES+1
,v_SECONDS>60, v_MINUTES=00
,v_MINUTES)
)
v_HOUR =>
IIF(count_Id =1,v_HOUR=00,DECODE(TRUE
,v_MINUTES<60, v_HOUR
,v_MINUTES=60, v_HOUR=v_HOUR+1
,v_MINUTES>60, v_HOUR=09
,v_HOUR)
)
预期输出:
目标输出字段格式-MMDDYYYYHHMMSSmmm 哪里 MMDDYYY-col3
HH(小时)-应始终从09开始 MM(分钟)-起始值00和最大值60(达到60时将小时增加1,并将其重置为“ 00”)
SS(秒)-起始值00和最大值60(当达到60时将Minute减1,并将其重置为'00')
mmm(毫秒)-起始值000和最大值999(达到999时将秒数递增1,并将其重置为“ 000”)