--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;