注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

花随梦影蝶纷飞

记住该记住的,忘记该忘记的,改变能改变的,接受不能改变的。

 
 
 

日志

 
 

Oracle日期比较函数  

2014-04-14 14:37:35|  分类: ★工作实践★ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
扩展表字段:

--扩展--
alter table E_OPER_AUTHZ_RESACC_REL add authzType varchar2(25);
alter table E_OPER_AUTHZ_RESACC_REL add endTime varchar2(25);
--扩展--
alter table E_OPER_AUTHZ_RESROLE_REL add authzType varchar2(25);
alter table E_OPER_AUTHZ_RESROLE_REL add endTime varchar2(25);

更新表数据:

--查询表--
select * from user_tables where table_name like 'E_OPER%';

--查询更新ID--
select t.operauthzreluuid,t.* from E_OPER_AUTHZ_RESROLE_REL t where t.authzType is null;
select t.operauthzreluuid,t.* from E_OPER_AUTHZ_RESACC_REL t where t.authzType is null;

--更新表--
update E_OPER_AUTHZ_RESROLE_REL updateE set updateE.authzType = '1' where updateE.operauthzreluuid in (
select t.operauthzreluuid from E_OPER_AUTHZ_RESROLE_REL t where t.authzType is null
);
--更新表--
update E_OPER_AUTHZ_RESACC_REL updateE set updateE.authzType = '1' where updateE.operauthzreluuid in (
select t.operauthzreluuid from E_OPER_AUTHZ_RESACC_REL t where t.authzType is null
);

正则表达式用法:

--正则用法--
select regexp_substr('2014-04-14 14:43:40', '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') str from dual;
--正则用法--
select regexp_substr('2014-04-14 14:43:40', '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') str from dual where regexp_substr('2014-04-14 14:43:40', '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') = '2014-04-14 14:43:40';
select regexp_substr('2014-04-14 14:43:40', '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') str from dual where regexp_substr('', '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') is null;

字符和日志函数:

--字符转日期--
select to_date('2014-04-14 14:43:40','yyyy-mm-dd hh24:mi:ss') from dual;
--日期转字符--
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

自定义时间比较函数:

create or replace function compare_date(
s_date varchar2,
t_date varchar2
)
return number
is
begin
if (regexp_substr(s_date, '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') is null) then
return -2;
elsif(regexp_substr(t_date, '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}') is null)then
return -2;
elsif(to_date(s_date,'yyyy-mm-dd hh24:mi:ss') > to_date(t_date,'yyyy-mm-dd hh24:mi:ss')) then
return 1;
elsif (to_date(s_date,'yyyy-mm-dd hh24:mi:ss') < to_date(t_date,'yyyy-mm-dd hh24:mi:ss')) then
return -1;
else
return 0;
end if;
end;
/

函数应用:

select distinct *
from (select acc.subacc_uuid, acc.resuuid
from e_oper_authz_resacc_rel oAccRel
inner join org_subacc acc
on acc.subacc_uuid = oAccRel.resaccuuid
WHERE oAccRel.personuuid = '62375b71616243439d64bd285b4f2c11'
and oAccRel.authzType = '1'
or (oAccRel.authzType = '0' and
compare_date('2014-04-14 16:22:42', oAccRel.startTime) = 1 and
compare_date('2014-04-14 16:22:42', oAccRel.endTime) = -1)
and acc.resource_type = '1'
and acc.logicdelete = '0'
union all
select acc.subacc_uuid, acc.resuuid
from e_oper_authz_resrole_rel oRoleRel
inner join e_resrole role
on oRoleRel.Resroleuuid = role.Resroleuuid
inner join r_resrole_acc accRole
on role.resroleuuid = accRole.Resroleuuid
inner join org_subacc acc
on acc.subacc_uuid = accRole.Subacc_Uuid
WHERE oRoleRel.personuuid = '62375b71616243439d64bd285b4f2c11'
and oRoleRel.authzType = '1'
or (oRoleRel.authzType = '0' and
compare_date('2014-04-14 16:22:42',oRoleRel.startTime) = 1 and
compare_date('2014-04-14 16:22:42', oRoleRel.endTime) = -1)
and acc.resource_type = '1'
and acc.logicdelete = '0'
and role.logicdelete = '0')

  评论这张
 
阅读(5)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017