扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
使用物化视图就可以了,比如:
宾阳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
create materialized view mv_test
refresh complete
start with to_date('02-08-2010 18:00:00', 'dd-mm-yyyy hh24:mi:ss') --第一次刷新时间
next sysdate+1/24 --间隔多久刷新一次
as --子查询语句,同普通view一样
select emp.empno,emp.ename,emp.job,emp.hiredate,emp.comm,dept.loc
from emp,dept
where emp.deptno=dept.deptno
你好!
直接使用date类型就可以,该类型精确到秒
如果字符串转日期使用to_date函数
如
to_date('20151112','yyyymmdd')
或to_date('20151112
13:11:11','yyyymmdd
hh24:mi:ss')
如果对你有帮助,望采纳。
oracle中没有datetime类型的字段,只有date类型,可以参考以下语句:
create table test
(id int,
time date default sysdate);
其中default sysdate就是代表默认的系统时间,验证方法如下:
insert into test (id) values (1);
commit;
结果截图:
插入的时间与系统时间是一致的,说明设置默认时间是成功的。
1 SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME = 'OBJNAME ';\x0d\x0a\x0d\x0a2 select OWNER,OBJECT_NAME,CREATED from dba_objects where OBJECT_NAME='表名' \x0d\x0aCREATED 是表的创建时间\x0d\x0a查询 dba_objects 表需要dba权限
你参考的例子是MS Sql Server的,@XX是变量的意思。我改写了一下,因为oracle没有identity自增,所以用了sequence。
首先建表:
CREATE TABLE time_by_day_dimension(
time_id int NOT NULL ,
the_date date NULL ,
the_day varchar2(15) NULL ,
the_month varchar2(15) NULL ,
the_year smallint NULL ,
day_of_month smallint NULL ,
week_of_year smallint NULL ,
month_of_year smallint NULL ,
fiscal_period varchar2(20) NULL
);
然后是创建序列:
create sequence seq_time_id start with 1 increment by 1 nocycle nocache ;
最后是过程:
create or replace
PROCEDURE Create_time_by_day_dimension
IS
WeekString varchar(12);
dDate DATE;
sMonth varchar(20);
iYear smallint;
iDayOfMonth smallint;
iWeekOfYear smallint;
iMonthOfYear smallint;
adddays int;
BEGIN
adddays := 1 ;
dDate := to_date('01/01/2006','mm/dd/yyyy');
WHILE (dDate to_date('12/31/2010','mm/dd/yyyy'))
loop
WeekString := to_char(dDate, 'day'); --星期几
sMonth:=to_char(dDate, 'mm');--月份
iYear:= to_char(dDate, 'yyyy');--年
iDayOfMonth:=to_char(dDate, 'dd');--日(字符型)
iWeekOfYear:= to_char(dDate,'fmww');--年的第几周
iMonthOfYear:=to_number(sMonth);--日(数字型)
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)
VALUES (seq_time_id.nextval,dDate, WeekString, sMonth, iYear, iDayOfMonth, iWeekOfYear, iMonthOfYear);
dDate := dDate + adddays;
END loop;
end;
最后少了一个字段:季度。你再学习添加一下吧!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流