近期在写日期公共维表的时候,花了一天时间才完成,将该方法记录下来。
建表语句:
CREATE TABLE dim_date(
date_id int NOT NULL AUTO_INCREMENT COMMENT '日期ID',
cur_year_date date COMMENT '日期(yyyy-MM-dd)',
datekey int COMMENT '日期缩写(yyyyMMdd)',
date_cn varchar(20) COMMENT '中文日期(yyyy年MM月dd日)',
last_year_date date COMMENT '去年日期(YYYY-MM-DD)',
last_year_datekey int COMMENT '去年日期(YYYYMMDD)',
last_year_date_cn varchar(20) COMMENT '中文去年日期(yyyy年MM月dd日)',
yearmonth int COMMENT '年月(yyyyMM)',
year int COMMENT '年(yyyy)',
half_year varchar(20) COMMENT '上/下半年,1上半年,2下半年',
month varchar(20) COMMENT '月(MM)',
day varchar(20) COMMENT '日(dd)',
quarter int COMMENT '季度',
weekday int COMMENT '周几',
month_en varchar(50) COMMENT '月份(英文)',
weekday_en varchar(50) COMMENT '周几(英文)',
month_days int COMMENT '当月总天数',
week_of_year_1 int COMMENT '一年中的第几周(一周第一天为周一,今年第一周从今年1月1号开始)',
week_of_year_2 int COMMENT '一年中的第几周(一周第一天为周一,今年第一周必须超过3天)',
week_of_year_3 int COMMENT '一年中的第几周(一周第一天为周一,今年第一周从周一开始)',
year_week_1 varchar(20) COMMENT '年周(周补0,一周第一天为周一,今年第一周从今年1月1号开始)',
year_week_2 varchar(20) COMMENT '年周(周补0,一周第一天为周一,今年第一周必须超过3天,例如202101)',
year_week_3 varchar(20) COMMENT '年周(周补0,一周第一天为周一,今年第一周从周一开始)',
year_week_w1 varchar(20) COMMENT '年周(周补0,带W,一周第一天为周一,今年第一周从今年1月1号开始,例如2021W01)',
year_week_w2 varchar(20) COMMENT '年周(周补0,带W,一周第一天为周一,今年第一周必须超过3天&#x