建时间维度表(oracle)
来源:互联网 发布:创建数据库指令 编辑:程序博客网 时间:2024/04/26 12:04
第一步:新建数据库表如下:
-- Create table
create table TIME_BY_DAY_DIMENSION
(
time_id NUMBER(10) not null,
the_date DATE,
the_day VARCHAR2(15),
the_month VARCHAR2(15),
the_year VARCHAR2(10),
day_of_month VARCHAR2(12),
week_of_year VARCHAR2(12),
month_of_year VARCHAR2(12),
quarter VARCHAR2(8),
time_name VARCHAR2(20)
)
;
-- Add comments to the table
comment on table TIME_BY_DAY_DIMENSION
is '时间维度表';
-- Add comments to the columns
comment on column TIME_BY_DAY_DIMENSION.time_id
is 'id';
comment on column TIME_BY_DAY_DIMENSION.the_date
is '日期';
comment on column TIME_BY_DAY_DIMENSION.the_day
is '星期几';
comment on column TIME_BY_DAY_DIMENSION.the_month
is '月份';
comment on column TIME_BY_DAY_DIMENSION.the_year
is '年份';
comment on column TIME_BY_DAY_DIMENSION.day_of_month
is '日';
comment on column TIME_BY_DAY_DIMENSION.week_of_year
is '周';
comment on column TIME_BY_DAY_DIMENSION.month_of_year
is '月';
comment on column TIME_BY_DAY_DIMENSION.quarter
is '季度';
comment on column TIME_BY_DAY_DIMENSION.time_name
is '日期中文名';
-- Create/Recreate primary, unique and foreign key constraints
alter table TIME_BY_DAY_DIMENSION
add constraint PK_TIME_BY_DAY primary key (TIME_ID)
;
第二步,编写存储过程,往表里面插入时间记录
CREATE OR REPLACE PROCEDURE Create_time_by_day_dimension
IS
WeekString varchar(12);
dDate DATE;
sMonth varchar(20);
iYear varchar(20);
iDayOfMonth varchar(20);
iWeekOfYear varchar(20);
iMonthOfYear smallint;
iQUARTER varchar(20);
adddays int;
sTIME_NAME varchar(100);
i number;
BEGIN
adddays := 1 ;
dDate := to_date('01/01/1949','mm/dd/yyyy');
i:=14974;
WHILE (dDate < to_date('12/31/1989','mm/dd/yyyy'))
loop
i:=i+1;
WeekString := to_char(dDate, 'day'); --星期几
iYear:= to_char(dDate, 'yyyy')||'年';--年
sMonth:=iYear||to_char(dDate, 'mm')||'月';--月份
iDayOfMonth:=to_char(dDate, 'dd')||'日';--日(字符型)
iWeekOfYear:= iYear||to_char(to_char(dDate,'fmww'),'00')||'周';--年的第几周
iMonthOfYear:=to_number(to_char(dDate, 'mm'));--月(数字型)
iQUARTER:=iYear||to_char(dDate,'q')||'季度';--季度
sTIME_NAME:=to_char(dDate,'yyyy')||'年'||to_char(dDate,'MM')||'月'||to_char(dDate,'dd')||'日';
INSERT INTO time_by_day_dimension(TIME_ID,the_date, the_day, the_month, the_year, day_of_month, week_of_year,
month_of_year,QUARTER,TIME_NAME)
VALUES (i,dDate, WeekString, sMonth, iYear, iDayOfMonth, iWeekOfYear, iMonthOfYear,iQUARTER,sTIME_NAME);
dDate := dDate + adddays;
END loop;
end;
- 建时间维度表(oracle)
- Oracle创建时间维度
- mysql时间维度表。
- Oracle中创建时间维度表并插入数据
- 时间维度表的建立
- 时间维度表的建立
- Oracle生成日期维度表
- 建立时间维度表的脚本
- 数据仓库的时间维度表 Sql
- mysql中生成时间维度表
- 【SQL】sql 时间维度表相关
- Transformer入门教程(八)时间维度
- 创建时间维度数据
- 数据仓库时间维度
- 时间维度创建
- Cube中时间维度
- 创建时间维度数据
- 数据仓库的时间维度
- ffmpeg音视频同步
- 网上订火车票的方法(Firefox+Firebug)
- 光标离开单元格就提交数据到ClientDataSet.Delta
- FFT算法
- Android 自定义动画
- 建时间维度表(oracle)
- sizeof 类
- el自定义函数和el函数库介绍
- 电影登录记录管理系统4[历史查看] 加强完整版
- 前端必读:浏览器内部工作原理
- Linux 并发、竞态管理的实现机制
- androd java socket通讯 中文乱码的解决
- 隐藏statusbar(就是手托动的状态栏)
- C#在主窗口嵌入子窗口