分享

ORACLE日期型函数

 心殇无痕 2014-07-31
sysdate函数:得到系统的当前日期
SQL> s elect to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')  from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
------------------------------
2014-07-31 15:49:56
systimestamp函数无参数,返回系统时间,改时间包括时区信息,精确到毫秒
SQL> select systimestamp from dual;
SYSTIMESTAMP
--------------------------------------------------------------------------------
31-7月 -14 03.51.39.868000 下午 +08:00
dbtimezone函数:无参,返回数据库时区
SQL> select dbtimezone from dual;
DBTIMEZONE
----------
+00:00
add_months(date,integer)函数该函数将返回在指定的日期上加上一个月份后的日期
         date:指定的日期
         integer:要加的指定月份数,如果为负,则表示减去的月份数
 
SQL> select 
  2  to_char(add_months(to_date('2009-9-15','YYYY-MM-DD'),1),'YYYY-MM-DD'),
  3  to_char(add_months(to_date('2009-9-30','YYYY-MM-DD'),1),'YYYY-MM-DD'),
  4  to_char(add_months(to_date('2009-1-30','YYYY-MM-DD'),1),'YYYY-MM-DD')
  5  from dual;
TO_CHAR(ADD_MONTHS(TO_DATE('20 TO_CHAR(ADD_MONTHS(TO_DATE('20 TO_CHAR(ADD_MONTHS(TO_DATE('20
------------------------------ ------------------------------ ------------------------------
2009-10-15                     2009-10-31                     2009-02-28
sessiontimezone函数:无参,返回当前回话的时区
SQL> select sessiontimezone from dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00
next_day(date,char)函数:该函数返回当前日期向后的一周char的对应日期,char表示的是星期几
SQL> select sysdate,next_day(sysdate,'星期一') from dual; 
SYSDATE     NEXT_DAY(SYSDATE,'星期一') 
----------- --------------------------
2014/7/31 1 2014/8/4 16:02:21

SQL> select sysdate,next_day(sysdate,'星期二') from dual;
SYSDATE     NEXT_DAY(SYSDATE,'星期二')
----------- --------------------------
2014/7/31 1 2014/8/5 16:06:07

SQL> select sysdate,next_day(sysdate,'星期日') from dual;
SYSDATE     NEXT_DAY(SYSDATE,'星期日')
----------- --------------------------
2014/7/31 1 2014/8/3 16:06:56
current_date函数:该函数得到回话时区的当前日期
SQL> select sessiontimezone,to_char(current_date,'YYYY-MM-DD HH24:MI:SS') from dual;
SESSIONTIMEZONE                                                             TO_CHAR(CURRENT_DATE,'YYYY-MM-
--------------------------------------------------------------------------- ------------------------------
+08:00                                                                      2014-07-31 16:09:11
extract(datetime)函数该函数可以从指定的时间中提取到指定的日期部分,如从给定的日期得到年、月、分等。
SQL> select extract(year from sysdate) year,
  2  extract(minute  from timestamp '2010-9-30 12:23:14') min,
  3  extract(second from timestamp '2010-8-24 15:31:23') sec
  4  from dual;
      YEAR        MIN        SEC
---------- ---------- ----------
      2014         23         23
months_between(date1,data2)函数:该函数返回date1和date2 之间的月份数
SQL> select months_between(to_date('2010-7-23','yyyy-mm-dd'),to_date('2010-8-23','yyyy-mm-dd')) one,
  2  months_between(to_date('2010-5-31','yyyy-mm-dd'),to_date('2010-4-30','yyyy-mm-dd')) two,
  3  months_between(to_date('2010-5-31','yyyy-mm-dd'),to_date('2010-9-30','yyyy-mm-dd')) three
  4  from dual;
MONTHS_BETWEEN(TO_DATE('2010-7        TWO      THREE
------------------------------ ---------- ----------
                            -1          1         -4
new_time(date,timezone1,timezone2)函数:该函数将返回时间date在时区timezone1转换到时区timezone2的时间
SQL>  select to_char(sysdate,'yyyy-mm-dd hh24:MI:SS') one,
  2   to_char(new_time(sysdate,'pdt','est')) two
  3  from dual;
ONE                 TWO
------------------- --------------
2014-07-31 16:29:13 31-7月 -14

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:MI:SS') one,
  2  to_char(new_time(sysdate,'pdt','est'),'yyyy-mm-dd hh24:MI:SS') two
  3  from dual;
ONE                 TWO
------------------- -------------------
2014-07-31 16:30:04 2014-07-31 18:30:04


round(date[,fmt])函数:将date舍入到fmt指定的形式,如果参数fmt被省略,则date被处理到最近的一条
SQL> select to_char(round(to_date('2010-7-31 16:30:23','yyyy-mm-dd hh24:MI:SS')),'yyyy-mm-dd')
  2  from dual;
TO_CHAR(ROUND(TO_DATE('2010-7-
------------------------------
2010-08-01
trunc(date[,fmt])函数:该函数将date截取到fmt指定的格式,如果fmt省略,则截取到最近的日期
SQL> select to_char(trunc(to_date('2010-7-31 16:30:23','yyyy-mm-dd hh24:MI:SS')),'yyyy-mm-dd')
  2  from dual;
TO_CHAR(TRUNC(TO_DATE('2010-7-
------------------------------
2010-07-31
 last_day(date)函数该函数返回参数指定日期对应月份的最后一天
SQL> select last_day(sysdate) from dual;
LAST_DAY(SYSDATE)
-----------------
2014/7/31 16:40:2

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多