在银行业务中经常会出各种报表,特别是在年终决算时各种报表多如牛毛,有的要求提取一年或者所有日期的数据,这时候就要求提取时间,格式如下:
20100101
20100102
……
20101231
20100102
……
20101231
以前我们出报表,这样的时间序列是通过检索数据库获取的,代码如下:
i=0
while (($i < $j))
do
((i=i+1))
isql cmbc <<+
unload to trdt_
dt.tmp select date ('$1')+$i from gddta;
+
awk -F "|" '{print $1}' trdt_dt.tmp >> trdt_dt
done
表gddta中只有一条记录,select不操作标准字段,实现日期的递增。这样会频繁的操纵数据库,虽然性能上没有太大影响。现在采用纯shell来实现。
#注意: 该函数经严格测试只能用于LINUX环境的ksh脚本中.
#function: GetIncDate {IDate} {IDays}; return ODate
GetIncDate()
{
L_TRADE_DAY=$1
days=$2
L_TODAY=$(printf "%(%Y%m%d)T\n" "${L_TRADE_DAY}0000 + ${days} day")
print ${L_TODAY}
}
i=0
while((i < 559))
do
((i=i+1))
GetIncDate 20081231 $i >>tempdate_file
959

被折叠的 条评论
为什么被折叠?



