1. sysdate 查看系统的当前时间
select sysdate from dual
SQL> select sysdate from dual;
SYSDATE
---------
14-AUG-13
回显结果受NLS_DATE_FORMAT参数的限制,这里修改下,后面的实验都以YYYY-MM-DD的结果显示
SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
Session altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
2013-08-14 15:27:27
2. ADD_MONTHS(d,n) 当前d日期往后推n个月,下面例子当月是8月加2个月,因此为10月
SQL> select add_months(sysdate,2) from dual;
ADD_MONTHS(SYSDATE,
-------------------
2013-10-14 15:31:20
3. LAST_DATE(D) 当月的最后一天
SQL> select last_day(sysdate) from dual;
LAST_DAY(SYSDATE)
-------------------
2013-08-31 15:34:11
4,Months_between(d1,d2) 返回d1和d2之间月的数目,精确到小数位
注意当前日期是8月14号,下面例子表明距10月14还差2个月,以负数形式返回
SQL> select months_between(sysdate,'2013-10-14') from dual;
MONTHS_BETWEEN(SYSDATE,'2013-10-14')
------------------------------------
-2
可以看出该函数以天为单位计算,并且精确到小数位后7位
SQL> select months_between(sysdate,'2013-10-10') from dual;
MONTHS_BETWEEN(SYSDATE,'2013-10-10')
------------------------------------
-1.8498831
2013-10-10 比当前日期超过了
SQL> select months_between('2013-10-10',sysdate) from dual;
MONTHS_BETWEEN('2013-10-10',SYSDATE)
------------------------------------
1.84975545
如果d1,d2相同返回为0
SQL> select months_between(sysdate,sysdate) from dual;
MONTHS_BETWEEN(SYSDATE,SYSDATE)
-------------------------------
0
5. NEXT_DAY(d, day_of_week)
返回由"day_of_week"命名的,在d日期下一个星期的第day_of_week工作日的日期。参数"day_of_week"必须为该星期中的某一天(1-7)。
例如今天是星期三,求下一个工作日的第二天是几号?
SQL> select next_day(sysdate,2)