目錄
1、日期維度表
2、生成語句
3、用例
num欄位名
字段中文名
描述資料型別
1date
日期日期 yyymmdd格式
bigint
2week
星期,數字型
星期,數字型 0-6
bigint
3week_cn
星期中文名
星期中文名 星期一……
string
4year_weeks
一年中的第幾周
一年中的第幾周 1 2 3……
bigint
5mon_dt
本週周一日期
本週周一日期
bigint
6sun_dt
本週週日日期
本週週日日期
bigint
7month
年月年月,yyyymm格式
bigint
8month_short
月份簡寫
月份簡寫,mm格式1~12
bigint
9month_cn
月份中文名
月份中文名 一月……
string
10quarter
季度季度,yyyyq1\2\3\4
string
11quarter_short
季度 數字型
季度 數字型 1-4
bigint
set hive.execution.engine=tez;
with dates as (
select date_add("2010-01-01", a.pos) as d
from (select po***plode(split(repeat("o", datediff("2030-12-31", "2010-01-01")), "o"))) a
)insert overwrite table dim.dim_date
select
d, date_format(d, 'yyyymmdd000000') as to_pt -- 指定分割槽格式
, date_format(d, 'yyyymmdd') as date_yyyymmdd
, trunc(d,'mm') as month_first_day
, last_day(d) as month_last_day
, date_format(last_day(d),'yyyymmdd000000') as month_last_pt
, date_format(d, 'yyyymm') as month_yyyymm
, date_format(d, 'yyyy-mm') as month_yyyy_mm
, month(d) as month
, date_format(d, 'u') as week
, date_format(d, 'e') as week_long
, weekofyear(d) as week_of_year
, year(d) as year
, floor(substr(d,6,2)/3.1)*3+1 as quarter
-- , concat_group('"',date_format(d, 'yyyymm'),'"') as date_yyyymmdd_list -- 低版本hive group_concat 不可用
from dates
取月末:where date_pk = month_last_day;
取週末:where week_int in (6,7);
取每月最後一天pt+ 當月昨天pt:where pt in ( select max(to_pt) from dim.dim_date where to_pt <= '$' group by month_yyyymm );
其它用法......
乙個sql生成hive日期維度表
目錄 1 日期維度表 2 生成語句 3 用例 num欄位名 字段中文名 描述資料型別 1date 日期日期 yyymmdd格式 bigint 2week 星期,數字型 星期,數字型 0 6 bigint 3week cn 星期中文名 星期中文名 星期一 string 4year weeks 一年中的...
乙個分頁sql語句生成的function
分頁sql語句生成 function getpagesql tblname,fldname,pagesize,pageindex,ordertype,strwhere dim strtemp,strsql,strorder 根據排序方式生成相關 if ordertype asc then strte...
生成乙個金鑰
生成規則 md5 id id.time rand 1,1000 獲取id id session id mobile 18812344321 md5 md5 id id.time rand 1,1000 將md5加密字串轉換為陣列 md5 str split md5 取其中16位,從第8位開始取 md...