--1、LAST_DAY函数:求指定日期所在月份的最后一天

SELECT LAST_DAY(TO_DATE('2014-12-02','YYYY-MM-DD')) FROM DUAL;

--2、求指定日期是周几

SELECT TO_CHAR(TO_DATE('1989-01-05','YYYY-MM-DD'),'DAY') FROM DUAL;

--3、求指定日期是本年的第几周

SELECT TO_CHAR(TO_DATE('1989-01-05','YYYY-MM-DD'),'WW') FROM DUAL;

--4、求指定日期是本月的第几周

SELECT TO_CHAR(TO_DATE('1989-01-05','YYYY-MM-DD'),'W') FROM DUAL;

--5、MONTHS_BETWEEN函数:用以求两个日期间隔的月份数,结果有可能是小数

SELECT MONTHS_BETWEEN(TO_DATE('1989-02-06','YYYY-MM-DD'),TO_DATE('1989-01-05','YYYY-MM-DD')) FROM DUAL;

--6、NEXT_DAY函数,第二个参数1代表下一个周日,2代表周一......6代表周五,7代表周六/也可以使用Monday-Sunday或者简写/ Mon-Sun

SELECT NEXT_DAY(SYSDATE,'2') FROM DUAL;

--说明:如果使用MONDAY方式参数,需要首先修改日期语言格式

ALTERSESSIONSET NLS_DATE_LANGUAGE='AMERICAN';

SELECT NEXT_DAY(SYSDATE,'MONDAY') FROM DUAL;

--中文语言格式下,也可以使用星期几的方式进行查询

ALTERSESSIONSET NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE';

SELECT NEXT_DAY(SYSDATE,'星期日') FROM DUAL;

--7、ADD_MONTHS函数:增加月份求日期

SELECT ADD_MONTHS(TO_DATE('2000-01-29','YYYY-MM-DD'),365) FROM DUAL;

--8、TREUC函数:截断到最接近的日期,单位为天 ,返回的是日期类型,如果日期包含时分秒则忽略;

SELECT TRUNC(TO_DATE('1989-01-05 11:27:35','YYYY-MM-DDHH24:MI:SS')) FROM DUAL;

--9、ROUND函数:指定日期如果超过当月15日,则显示下个月1日,否则显示本月1日

SELECT ROUND(TO_DATE('2000-01-09','YYYY-MM-DD'),'MONTH') FROM DUAL;