如何生成包含“dayofweek”、“weekofyear”等字段的日期表;行等于从2010-01-01到当前日期的日期,如下所示:
Dayofweek Dayofmonth Dayofyear Weekofmonth Weekofyear Holiday
2010-01-01 6 1 1 1 1 Y
2010-01-02 7 2 2 1 1 N
2010-01-03 1 3 3 1 1 N
.....
2019-03-31 1 31 90 6 14 N
p、 s.dayofweek=一周的天数,sun=1,sat=7 dayofmonth=一个月的天数
Holiday is a flag to distinguish whether the records is a public holiday
所以我需要做的第一步可能是创建从2010-01-01到当前日期的记录,我想知道hive和mssql中的循环会做什么?然后我准备好了专栏,最后把它们结合起来。
我试过了
"Declare @startdate date
Declare @enddate date
set @startdate = '2010-01-01'
set @end_date = current_date
while @ start_date <=end_date
BEGIN
DATEADD(DAY,1,@startdate)
END
"Declare @startdate date
Declare @enddate date
set @startdate = '2010-01-01'
set @end_date = current_date
while @ start_date <=end_date
BEGIN
DATEADD(DAY,1,@startdate)
END
Dayofweek Dayofmonth Dayofyear Weekofmonth Weekofyear Holiday
2010-01-01 6 1 1 1 1 Y
2010-01-02 7 2 2 1 1 N
2010-01-03 1 3 3 1 1 N
.....
2019-03-31 1 31 90 6 14 N
2条答案
按热度按时间k5ifujac1#
Hive解决方案:
增加更多假期。
oxalkeyp2#
您可以使用以下解决方案获得日历表:
基本日历表是基于stackoverflow的解决方案。与
INNER JOIN
你可以增加一些假期。与
DATEPART
你可以得到一些关于日期的信息。