女码农

今天主要工作是着手优化之前的代码;优化中出现的bug不少,自己只好一遍遍修改,一遍遍打印,终于可以顺利运行了,心中真是畅快;今天的错误主要是时间的用法上,这块是我的薄弱项,今天也算犯了不少错误,加强学习了一把;


1、 代码中包含循环,因此定义了startdate和enddate,但是后面引用变量的时候,应该写between '${startdate[i]}' and '${enddate[i]}',错误copy成了between '${date_start[i]}' and '${date_end[i]}';后来反复检查,终于纠正;


2、这个需求每周五输出,因此每次的dt都是定义昨天的时间,每次都是手动改 写的,为了变成dt自动取昨日日期,设置变量dt_data=`date --date="$date 1 day ago" +%Y%m%d`,引用变量where dt = '${dt_data[i]}',这里错误,正确写法是where dt = '${dt_data}',原因是在一次导数中,dt不随循环而改变,只取昨日的日期;dt说明如下


①、dt是和物理硬盘相关的,如果表内有dt,在任何一句话里都应该加上。


②、dt_data=`date --date="$date 1 day ago" +%Y%m%d`


date --date=是去日期


$date 1 day ago 是一天以前


%Y%m%d是输出格式


3、在表dw.kn2_ord_order_detail_all中,区别sign_date ,sign_time,前者是指日期,如2018-09-17,后者不仅包含日期,还包含时分妙,2018-09-17  00:00:00.

你可能感兴趣的:(女码农)