如果表列在DB2表的INTEGER formmat中,如何以Packed十进制格式获取卸载结果?

时间:2011-10-19 11:54:48

标签: mainframe jcl syncsort

我在下面有一个查询解释....,

1.My DB2 table column is in INTEGER format (it has the date value in Julian date format - YYYYDDD)

2. After unload this date into a flat file, the result is in hexa decimal format.(4 bytes occupaid)

3. I have a requirement to compare this date with (Current Julian date+7days) and write the corresponding recods into a File. 

4. So, when I am comparing the Hexa decimal Input date with Current Julian date+7days (DATE3P+7), I am getting MAxcc=0 but I am not getting required output. 

5. What I identified the problem is that the input date should also be in packed decimal format. 

任何人都可以让我知道如何在卸载时转换Packed decimal中的表值,或者建议其他方式来获取它。

Ex: - 1.卸载Julian日期(YYYYDDD)[卸载后将以十六进制格式]。      2.与当前朱利安日期+7天比较。         排序字段=复制         OUTFIL FILES = 1,                INCLUDE =(1,4,PD,LT,DATE3P + 7)         OUTFIL FILES = 2,保存

先谢谢Rajasekhar Jannu。

1 个答案:

答案 0 :(得分:1)

相信这些替代方式,工作......

  • 不是以十六进制类型获取日期,而是在YYYYDDD中将其作为日期卸载 格式和DATE3将为您提供YYYYDDD中的朱利安日期。现在 这两者都是兼容的格式比较和条件。

    DB2提供了许多标量函数来提供Julian日期和as 数字日期。我相信DIGITS标量函数JULIAN 会做...

    请参阅此DB2 Scalar Functions

  • 如果你不能以上述方式卸载表,另一个 方式是操纵卸载文件,以便日期从十六进制 格式需要使用转换为YYYYDDD数字格式 DFSORT。然后DATE3将帮助您获得一周的数据。 DFSORT 参考已经分享。