`
axengine
  • 浏览: 143008 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Shell获取时间列表

阅读更多

在银行业务中经常会出各种报表,特别是在年终决算时各种报表多如牛毛,有的要求提取一年或者所有日期的数据,这时候就要求提取时间,格式如下:

20100101

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
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics