select sysdate '当前',sysdate+7 '一周后' from dual;
显示昨天,今天,明天的日期,日期类型 +- 数值 = 日期类型select sysdate-1 "昨天",sysdate "今天",sysdate+1 "明天" from dual;
以年和月形式显示员工近似工龄,日期-日期=数值,假设:一年以365天计算,一月以30天计算select ename "姓名",round(sysdate-hiredate,0)/365 "天数" from emp;
使用months_between函数,精确计算到年底还有多少个月select months_between('31-12月-15',sysdate) from dual;
使用months_between函数,以精确月形式显示员工工龄select ename "姓名",months_between(sysdate,hiredate) "精确月工龄" from emp;
测试add_months函数,下个月今天是多少号select add_months(sysdate,1) from dual;
测试add_months函数,上个月今天是多少号select add_months(sysdate,-1) from dual;
测试next_day函数,从今天开始算,下一个星期三是多少号【中文平台】select next_day(sysdate,'星期三') from dual;
测试next_day函数,从今天开始算,下下一个星期三是多少号【中文平台】select next_day(next_day(sysdate,'星期三'),'星期三') from dual;
测试next_day函数,从今天开始算,下一个星期三的下一个星期日是多少号【中文平台】select next_day(next_day(sysdate,'星期日') from dual;
测试last_day函数,本月最后一天是多少号select last_day(sysdate) from dual;
测试last_day函数,本月倒数第二天是多少号select last_day(sysdate)-1 from dual;
测试last_day函数,下一个月最后一天是多少号select last_day(add_months(sysdate,1)) from dual;
测试last_day函数,上一个月最后一天是多少号select last_day(add_months(sysdate,-1)) from dual;
注意:
1)日期-日期=天数
2)日期+-天数=日期
SELECT to_char(to_date('2011-03-13','YYYY-MM-DD'),'d') FROM DUAL
to_char的其他用法
Select to_char(sysdate,'ss') from dual取当前时间秒部分
Select to_char(sysdate,'mi') from dual取当前时间分钟部分
Select to_char(sysdate,'HH24') from dual取当前时间秒小时部分
Select to_char(sysdate,'DD') from dual取当前时间日期部分
Select to_char(sysdate,'MM') from dual取当前时间月部分
Select to_char(sysdate,'YYYY') from dual取当前时间年部分
Select to_char(sysdate,'w') from dual取当前时间是一个月中的第几周(从1日开始算)
Select to_char(sysdate,'ww') from dual取当前时间是一年中的第几周(从1.1开始算)
Select to_char(sysdate,'iw') from dual取当前时间是一年中的第几周(按实际日历的)
Select to_char(sysdate,'day') from dual 取当前日是星期几,和数据库设置的字符集有关,会输出'Tuesday'
Select to_char(sysdate,'d') from dual取当前时间是一周的第几天,从星期天开始,周六结束
Select to_char(sysdate,'dd') from dual 当前日是一个月中的第几天 Select to_char(sysdate,'ddd') from dual 当前日是一年中的第几天
原文链接:https://www.f2er.com/oracle/210668.html