创建时间维度数据

本文介绍了一个使用Oracle SQL创建并填充日期维度表的过程。通过循环插入指定日期范围内的记录,并更新年份、季度、月份和具体日期等字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CREATE TABLE D_TIME(
       d_time       date,
       dim_year     
varchar2(4),
       dim_quarter  
varchar2(6),
       dim_month    
varchar2(6),
       dim_day      
varchar2(9));

DECLARE
       begin_date   date;
       end_date     date;
BEGIN
     begin_date :
= to_date('2007-01-01','yyyy-mm-dd');
     end_date :
= to_date('2007-12-31','yyyy-mm-dd');
     
     LOOP
     
INSERT INTO D_TIME(d_time)
     
VALUES(begin_date);
     begin_date :
= begin_date + 1;
     
EXIT WHEN begin_date > end_date;
     
END LOOP;
     
COMMIT;
END;

UPDATE D_TIME SET dim_year = to_char(d_time,'yyyy');
UPDATE D_TIME SET dim_quarter = to_char(d_time,'yyyy'|| '0' || to_char(d_time,'q');
UPDATE D_time SET dim_month = to_char(d_time,'yyyy'|| to_char(d_time,'mm');
   UPDATE D_TIME SET dim_day = to_char(d_time,'yyyy'|| to_char(d_time ,'mm'|| to_char(d_time,'dd');
COMMIT
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值