我想创建一个每月包,在ODBC上执行每日查询并写入输出文件。
更具体地说,必须首先在上个月(e.g. '01/11/2018')
的第一天执行查询,然后在下一个('02/11/2018')
的第二天直到上个月('30/11/2018')
的最后一天执行查询。
日期变量当前被保存为字符串,我还希望将具有Oracle日期格式的字符串变量插入查询中。应该如何组织?有没有办法可以在表达式中使用字符串变量?
答案 0 :(得分:1)
将其分成以下部分:
开始日期(日期时间) = <Build_details>
<Release number="1902">
<Build number="260">
<OMS>
<Build_path>ST_OMS_V1810_B340</Build_path>
<Pc_version>8041.30.01</Pc_version>
</OMS>
<OMNI>
<Build_path>ST_OMNI_V1810_B340</Build_path>
</OMNI>
</Build>
</Release>
<Release number="1810">
<Build number="230">
<OMS>
<Build_path>ST_OMS_909908</Build_path>
<Pc_version>8031.25.65</Pc_version>
</OMS>
<OMNI>
<Build_path>ST_OMNI_798798789789</Build_path>
</OMNI>
</Build>
</Release>
<Release number="1806">
<Build number="300">
<OMS>
<Build_path>ST_OMS_V18102_B300</Build_path>
<Pc_version>8041.30.01</Pc_version>
</OMS>
<OMNI>
<Build_path>ST_OMNI_V18102_B300</Build_path>
</OMNI>
</Build>
</Release>
</Build_details>
How can i insert below chunk of data by asking release no to user and insert below it :
<Build number="230">
<OMS>
<Build_path>ST_OMS_909908</Build_path>
<Pc_version>8031.25.65</Pc_version>
</OMS>
<OMNI>
<Build_path>ST_OMNI_798798789789</Build_path>
</OMNI>
</Build>
结束日期(日期时间) = (DT_DATE)((DT_WSTR,4)YEAR(DATEADD("MM",-1,GETDATE()))+"-"+RIGHT("0"+(DT_WSTR,2)MONTH(DATEADD("MM",-1,GETDATE())),2)+"-01")
声明变量DATEADD("D", -(DAY(GETDATE())),GETDATE())
创建一个Counter(datetime)
,如下所示:
For loop container
对其进行参数化答案 1 :(得分:0)
事实上,我发现我想在循环中使用的只是日期的一天,因此我创建了两个额外的int变量,其中包含:
1)每月的第一天(1)
2)该月的最后一天(28,30,31)
我在ds
使用了这两个变量,并将索引转换为字符串,因此可以将其添加到查询中。可能会有更好的方法,这将受到欢迎。