sql面试题---查询当前至一周的时间

当是听到这个面试题目,有点蒙啊,后来学了oracle才知道。

其实很简单,直接上demo

select sysdate '当前', sysdate+7 '一周后' from dual;

oracle还有好多功能很强大的函数,我先列一些

显示昨天,今天,明天的日期,日期类型 +- 数值 = 日期类型
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)日期+-天数=日期

posted @ 2016-12-21 13:47  小阿东  阅读(1483)  评论(0)    收藏  举报