码迷,mamicode.com
首页 > 其他好文 > 详细

sysdate()简单用法

时间:2018-10-10 01:00:24      阅读:975      评论:0      收藏:0      [点我收藏+]

标签:to_char   项目管理   闰年   技术工   between   rownum   sys   code   str   

环境:

create table rq (xm varchar2(10),age number,zw varchar(10),rzrq date);
insert into rq values (‘小崔‘,23,‘运维工程师‘,(to_date(‘2017-07-02‘,‘yyyy-mm-dd‘)));
insert into rq values (‘小赵‘,29,‘java工程师‘,(to_date(‘2013-04-12‘,‘yyyy-mm-dd‘)));
insert into rq values (‘小白‘,24,‘网络工程师‘,(to_date(‘2016-10-02‘,‘yyyy-mm-dd‘)));
insert into rq values (‘小虎‘,43,‘项目管理师‘,(to_date(‘2003-09-15‘,‘yyyy-mm-dd‘)));
insert into rq values (‘小叶‘,2,‘技术工程师‘,(to_date(‘2009-07-02‘,‘yyyy-mm-dd‘)));
select * from rq

技术分享图片

日期+数字=日期,表示若干天之后的日期。

select a.*,rzrq +10 from rq a

技术分享图片

加法 
select a.*,add_months(rzrq,12) from rq a; --------加1年 
select a.*,add_months(rzrq,1) from rq a; --加1月 
select a.*,to_char(rzrq+7,‘yyyy-mm-dd HH24:MI:SS‘) from rq a;---加1星期 
select a.*,to_char(rzrq+1,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1天 
select a.*,to_char(rzrq+1/24,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1小时 
select a.*,to_char(rzrq+1/24/60,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1分钟 
select a.*,to_char(rzrq+1/24/60/60,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1秒 

日期-数字=日期,表示若干天之前的日期。

select a.*,rzrq -10 from rq a
技术分享图片

日期-日期=数字,表示两个日期间的天数,但是肯定是大日期-小日期。

select a.*,trunc(sysdate - rzrq) from rq a
技术分享图片

加法 
select a.*,add_months(rzrq,-12) from rq a; --------加1年 
select a.*,add_months(rzrq,-1) from rq a; --加1月 
select a.*,to_char(rzrq-7,‘yyyy-mm-dd HH24:MI:SS‘) from rq a;---加1星期 
select a.*,to_char(rzrq-1,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1天 
select a.*,to_char(rzrq-1/24,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1小时 
select a.*,to_char(rzrq-1/24/60,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1分钟 
select a.*,to_char(rzrq-1/24/60/60,‘yyyy-mm-dd HH24:MI:SS‘) from rq a; --加1秒 

求出每个员工到今天为止的雇佣月份

select a.*,trunc(months_between(sysdate,rzrq)) from rq a 

技术分享图片

查询出5年前受雇佣的员工信息:

 select * from rq where trunc(months_between(sysdate,rzrq))/5 >12

技术分享图片

注意:在开发中,如果是日期函数,建议用此语句,可以避免闰年的问题。

获取当前日期及本月第几周:

select ‘当前系统日期:‘||to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘),‘本月第‘||to_char(sysdate,‘w‘)||‘周‘ from rq

 技术分享图片

获取当前日期是一个星期中的第几天:

技术分享图片

注意:星期日是第一天

日期是星期几中文显示::

select ‘当前系统日期:‘||to_char(sysdate),‘本周‘||to_char(sysdate,‘day‘) from rq

技术分享图片

解释:

yyyy 年

q 季度

mm 月

dd 日

ddd 年中的第几天 

WW 年中的第几个星期 
W 该月中第几个星期 
D 周中的星期几 
hh 小时(12) 
hh24 小时(24) 
Mi 分 
ss 秒 

查看当前系统日期:

select a.*,sysdate from rq a

获取当天凌晨0点0分0秒的日期 

select trunc(sysdate) from rq;

获取这天的最后一秒 

select trunc(sysdate) + 0.99999 from rq; 

获取小时的具体数值 

select trunc(sysdate) + 1/24 from rq; 
select trunc(sysdate) + 7/24 from rq; 

获取明天凌晨0点0分0秒的日期

select trunc(sysdate+1) from rq; 
select trunc(sysdate)+1 from rq; 

获取本月一日的日期 

select trunc(sysdate,‘mm‘) from rq; 

获取下月一日的日期 

select trunc(add_months(sysdate,1),‘mm‘) from rq; 

返回当前月的最后一天

select last_day(sysdate) from rq; 

select last_day(trunc(sysdate)) from rql; 

select trunc(last_day(sysdate)) from rq; 

select trunc(add_months(sysdate,1),‘mm‘) - 1 from rq;

获取一年的每一天

select trunc(sysdate,‘yyyy‘)+ rn -1 date0 from (select rownum rn from all_objects where rownum<366);

获取今天是今年的第N天

select to_char(sysdate,‘ddd‘) from dual;

 

如何在给现有的日期加上2年

select add_months(sysdate,24) from dual;

判断某一日子所在年分是否为润年

select decode(to_char(last_day(trunc(sysdate,‘y‘)+31),‘dd‘),‘29‘,‘闰年‘,‘平年‘) from dual;

判断两年后是否为润年

select decode(to_char(last_day(trunc(add_months(sysdate,24),‘y‘)+31),‘dd‘),‘29‘,‘闰年‘,‘平年‘) from dual;

 

sysdate()简单用法

标签:to_char   项目管理   闰年   技术工   between   rownum   sys   code   str   

原文地址:https://www.cnblogs.com/su-root/p/9763866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!