使用SORT减去从日期开始的天数

时间:2016-02-19 05:32:42

标签: mainframe jcl syncsort

我想使用SyncSORT从给定的输入日期中减去一天?输入日期为YYYYMMDD格式。

Input date: 20111031 (Format: YYYYMMDD)
Output date after minus 1 day: 20111030 (Format: YYYYMMDD). 

2 个答案:

答案 0 :(得分:2)

这适用于DFSORT。它不适用于最高1.4.x的SyncSORT。它可以使用SyncSORT(Mainframe Express或MFX)2.x工作(让我们知道),它甚至可以在没有记录的情况下工作。或者不是。

SORT FIELDS=COPY                                      
INREC OVERLAY=(1:1,8,Y4T,SUBDAYS,+1,TOGREG=Y4T)

它可能对你有帮助。

答案 1 :(得分:0)

使用SyncSORT的日期算术与使用DFSORT的日期算术明显不同(至少高达1.4.x,谁知道更高版本?)

这就是说,“将结果放入当前记录的第一列,取一个长度为8的位置,采用四个数字的格式,然后是两位数的月份和两位数的日期,添加使用函数DATEADD减去一个单位(即减去),这些单位是天。结果将与源“。

的格式相同。
SORT FIELDS=COPY                                      
INREC OVERLAY=(1:DATEADD=(1,8,DT=(4MD),-1,DAY))

可以表达许多输入格式,并且有几个选项可以描述单位(有效取决于输入的格式)。输入格式可以用分隔符描述,它们将保留在输出中。