1 -- 判断指定日期是星期几
2 select
3 etl_dt
4 ,case when dayofweek(etl_dt) = 1 then 7 else dayofweek(etl_dt) - 1 end as week1 -- 周一至周七
5 ,datediff(etl_dt,'1970-01-05') % 7 + 1 as week2 -- 周一至周七
6 ,case when dayofweek(etl_dt) = 1 then 0 else dayofweek(etl_dt) - 1 end as week3 -- 周日为0
7 ,datediff(etl_dt,'1970-01-04') % 7 as week4 -- 周日为0
8 ,dayofweek(etl_dt) as week5 -- 周日为1
9 ,datediff(etl_dt,'1970-01-04') % 7 + 1 as week6 -- 周日为1
10 from (
11 select '2018-04-16' as etl_dt union all
12 select '2018-04-17' as etl_dt union all
13 select '2018-04-18' as etl_dt union all
14 select '2018-04-19' as etl_dt union all
15 select '2018-04-20' as etl_dt union all
16 select '2018-04-21' as etl_dt union all
17 select '2018-04-22' as etl_dt
18 ) t1
19 order by etl_dt
20 ;