zoukankan      html  css  js  c++  java
  • Oracle SQL函数之日期函数

    sysdate
    【功能】:返回当前日期。
    【参数】:没有参数,没有括号
    【返回】:日期
    SQL> SELECT SYSDATE FROM DUAL;
    SYSDATE
    -----------
    2015/4/9 19
    
    add_months(d1,n1)
    【功能】:返回在日期d1基础上再加n1个月后新的日期。
    【参数】:d1,日期型,n1数字型
    【返回】:日期
    SQL> SELECT SYSDATE,ADD_MONTHS(SYSDATE,3) FROM DUAL;
    SYSDATE     ADD_MONTHS(SYSDATE,3)
    ----------- ---------------------
    2015/4/9 19 2015/7/9 19:02:59
    
    last_day(d1)
    【功能】:返回日期d1所在月份最后一天的日期。
    【参数】:d1,日期型
    【返回】:日期
    SQL> SELECT SYSDATE,LAST_DAY(SYSDATE),LAST_DAY(TO_DATE('2015/12/01','YYYY/MM/DD')) FROM DUAL;
    SYSDATE     LAST_DAY(SYSDATE) LAST_DAY(TO_DATE('2015/12/01',
    ----------- ----------------- ------------------------------
    2015/4/9 19 2015/4/30 19:08:3 2015/12/31
    
    months_between(d1,d2)
    【功能】:返回日期d1到日期d2之间的月数。
    【参数】:d1,d2 日期型
    【返回】:数字
    如果d1>d2,则返回正数
    如果d1<d2,则返回负数
    SQL> SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2015/01/01','YYYY/MM/DD')),MONTHS_BETWEEN(SYSDATE,TO_DATE('2015/12/31','YYYY/MM/DD')) FROM DUAL;
    MONTHS_BETWEEN(SYSDATE,TO_DATE MONTHS_BETWEEN(SYSDATE,TO_DATE
    ------------------------------ ------------------------------
                  3.28386872759857               -8.6838732078853
    
    NEW_TIME(dt1,c1,c2)
    【功能】:给出时间dt1在c1时区对应c2时区的日期和时间
    【参数】:dt1,d2 日期型
    【返回】:日期时间
    【参数】:c1,c2对应的 时区及其简写   
      大西洋标准时间:AST或ADT   
      阿拉斯加_夏威夷时间:HST或HDT   
      英国夏令时:BST或BDT   
      美国山区时间:MST或MDT   
      美国中央时区:CST或CDT   
      新大陆标准时间:NST   
      美国东部时间:EST或EDT   
      太平洋标准时间:PST或PDT   
      格林威治标准时间:GMT   
      Yukou标准时间:YST或YDT 
    【示例】
    SQL> SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') BJ_TIME,TO_CHAR(NEW_TIME(SYSDATE,'PDT','GMT'),'YYYY/MM/DD HH24:MI:SS') LOS_ANGLES FROM DUAL;
    BJ_TIME             LOS_ANGLES
    ------------------- -------------------
    2015/04/09 19:17:06 2015/04/10 02:17:06
    
    round(d1[,c1])
    【功能】:给出日期d1按期间(参数c1)四舍五入后的期间的第一天日期(与数值四舍五入意思相近)
    【参数】:d1日期型,c1为字符型(参数),c1默认为j(即最近0点日期)
    【参数表】:c1对应的参数表:
    最近0点日期: 取消参数c1或j
    最近的星期日:day或dy或d
    最近月初日期:month或mon或mm或rm 
    最近季日期:q
    最近年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)  
    最近世纪初日期:cc或scc
    【返回】:日期
    【示例】
    SQL> select sysdate 当时日期,
      2  round(sysdate) 最近0点日期,
      3  round(sysdate,'day') 最近星期日,
      4  round(sysdate,'month') 最近月初,
      5  round(sysdate,'q') 最近季初日期,
      6  round(sysdate,'year') 最近年初日期 from dual;
    当时日期    最近0点日期 最近星期日  最近月初    最近季初日期 最近年初日期
    ----------- ----------- ----------- ----------- ------------ ------------
    2015/4/9 19 2015/4/10   2015/4/12   2015/4/1    2015/4/1     2015/1/1
    
    trunc(d1[,c1])
    【功能】:返回日期d1所在期间(参数c1)的第一天日期
    【参数】:d1日期型,c1为字符型(参数),c1默认为j(即当前日期)
    【参数表】:c1对应的参数表:
    最近0点日期: 取消参数c1或j
    最近的星期日:day或dy或d (每周顺序:日,一,二,三,四,五,六)
    最近月初日期:month或mon或mm或rm 
    最近季日期:q
    最近年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)  
    最近世纪初日期:cc或scc
    【返回】:日期
    【示例】
    SQL> select sysdate 当时日期,
      2  trunc(sysdate) 今天日期,
      3  trunc(sysdate,'day') 本周星期日,
      4  trunc(sysdate,'month') 本月初,
      5  trunc(sysdate,'q') 本季初日期,
      6  trunc(sysdate,'year') 本年初日期 from dual;
    当时日期    今天日期    本周星期日  本月初      本季初日期  本年初日期
    ----------- ----------- ----------- ----------- ----------- -----------
    2015/4/9 19 2015/4/9    2015/4/5    2015/4/1    2015/4/1    2015/1/1
    
    next_day(d1[,c1])
    【功能】:返回日期d1在下周,星期几(参数c1)的日期
    【参数】:d1日期型,c1为字符型(参数),c1默认为j(即当前日期)
    【参数表】:c1对应:星期一,星期二,星期三……星期日
    【返回】:日期
    SQL> select sysdate 当时日期,
      2  next_day(sysdate,'星期一') 下周星期一,
      3  next_day(sysdate,'星期二') 下周星期二,
      4  next_day(sysdate,'星期三') 下周星期三,
      5  next_day(sysdate,'星期四') 下周星期四,
      6  next_day(sysdate,'星期五') 下周星期五,
      7  next_day(sysdate,'星期六') 下周星期六,
      8  next_day(sysdate,'星期日') 下周星期日 from dual;
    当时日期    下周星期一  下周星期二  下周星期三  下周星期四  下周星期五  下周星期六  下周星期日
    ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
    2015/4/9 19 2015/4/13 1 2015/4/14 1 2015/4/15 1 2015/4/16 1 2015/4/10 1 2015/4/11 1 2015/4/12 1
    
    
    extract(c1 from d1)
    【功能】:日期/时间d1中,参数(c1)的值
    【参数】:d1日期型(date)/日期时间型(timestamp),c1为字符型(参数)
    【参数表】:c1对应的参数表详见示例
    SQL> select
      2  extract(hour from timestamp '2001-2-16 2:38:40 ' ) 小时,
      3  extract(minute from timestamp '2001-2-16 2:38:40 ' ) 分钟,
      4  extract(second from timestamp '2001-2-16 2:38:40 ' ) 秒,
      5  extract(DAY from timestamp '2001-2-16 2:38:40 ' ) 日,
      6  extract(MONTH from timestamp '2001-2-16 2:38:40 ' ) 月,
      7  extract(YEAR from timestamp '2001-2-16 2:38:40 ' ) 年
      8   from dual;
            小时         分钟          秒          日          月          年
    ---------- ---------- ---------- ---------- ---------- ----------
             2         38         40         16          2       2001
    SQL> select extract(YEAR from date '2015-04-10') from dual;
    EXTRACT(YEARFROMDATE'2015-04-1
    ------------------------------
                              2015
    
    SQL> select extract(day from sysdate),extract(month from sysdate),extract(year from sysdate) from dual;
    EXTRACT(DAYFROMSYSDATE) EXTRACT(MONTHFROMSYSDATE) EXTRACT(YEARFROMSYSDATE)
    ----------------------- ------------------------- ------------------------
                          9                         4                     2015
    
    SQL> select sysdate 当前时间,
      2  extract(DAY from sysdate ) 日,
      3  extract(MONTH from sysdate ) 月,
      4  extract(YEAR from sysdate ) 年
      5  from dual;
    当前时间             日          月          年
    ----------- ---------- ---------- ----------
    2015/4/9 20          9          4       2015
    
    localtimestamp
    【功能】:返回客户端会话中本地的日期和时间 
    【参数】:没有参数,没有括号
    【返回】:日期
    SQL>  select localtimestamp from dual;
    LOCALTIMESTAMP
    --------------------------------------------------------------------------------
    10-4月 -15 11.56.46.224832 上午
    
    current_timestamp
    【功能】:以timestamp with time zone数据类型返回当前会话时区中的当前日期
    【参数】:没有参数,没有括号
    【返回】:日期
    SQL> select current_timestamp from dual;
    CURRENT_TIMESTAMP
    --------------------------------------------------------------------------------
    10-4月 -15 11.56.02.361761 上午 +08:00
    
    
    current_date
    【功能】:返回当前会话时区中的当前日期 
    【参数】:没有参数,没有括号
    【返回】:日期
    SQL> select current_date from dual;
    CURRENT_DATE
    ------------
    2015/4/10 11
    
    dbtimezone
    【功能】:返回时区
    【参数】:没有参数,没有括号
    【返回】:字符型
    SQL> select dbtimezone from dual;
    DBTIMEZONE
    ----------
    +00:00
    
    SESSIONTIMEZONE
    【功能】:返回会话时区
    【参数】:没有参数,没有括号
    【返回】:字符型
    SQL> select sessiontimezone from dual;
    SESSIONTIMEZONE
    ---------------------------------------------------------------------------
    +08:00
    
    INTERVAL c1 set1
    【功能】:变动日期时间数值
    【参数】:c1为数字字符串或日期时间字符串,set1为日期参数
    【参数表】:set1具体参照示例
    【返回】:日期时间格式的数值,前面多个+号
    以天或天更小单位时可用数值表达式借用,如1表示1天,1/24表示1小时,1/24/60表示1分钟
    【示例】
    SQL> select
      2  sysdate,
      3  trunc(sysdate)+(interval '1' second), --加1秒(1/24/60/60)
      4  trunc(sysdate)+(interval '1' minute), --加1分钟(1/24/60)
      5  trunc(sysdate)+(interval '1' hour), --加1小时(1/24)
      6  trunc(sysdate)+(INTERVAL '1' DAY),  --加1天(1)
      7  trunc(sysdate)+(INTERVAL '1' MONTH), --加1月
      8  trunc(sysdate)+(INTERVAL '1' YEAR), --加1年
      9  trunc(sysdate)+(interval '01:02:03' hour to second), --加指定小时到秒
     10  trunc(sysdate)+(interval '01:02' minute to second), --加指定分钟到秒
     11  trunc(sysdate)+(interval '01:02' hour to minute), --加指定小时到分钟
     12  trunc(sysdate)+(interval '2 01:02' day to minute) --加指定天数到分钟
     13  from dual;
    SYSDATE     TRUNC(SYSDATE)+(INTERVAL'1'SEC TRUNC(SYSDATE)+(INTERVAL'1'MIN TRUNC(SYSDATE)+(INTERVAL'1'HOU TRUNC(SYSDATE)+(INTERVAL'1'DAY TRUNC(SYSDATE)+(INTERVAL'1'MON 
    
    TRUNC(SYSDATE)+(INTERVAL'1'YEA TRUNC(SYSDATE)+(INTERVAL'01:02 TRUNC(SYSDATE)+(INTERVAL'01:02 TRUNC(SYSDATE)+(INTERVAL'01:02 TRUNC(SYSDATE)+(INTERVAL'201:0
    ----------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ 
    
    ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
    2015/4/9 21 2015/4/9 0:00:01               2015/4/9 0:01:00               2015/4/9 1:00:00               2015/4/10                      2015/5/9                       
    
    2016/4/9                       2015/4/9 1:02:03   
  • 相关阅读:
    PHP封装数据库连接
    MySQL和php数据访问
    php测试题
    微信分享缩略图
    js时间戳转时间格式
    php调用微信客服消息接口给用户发送信息
    ueditor富文本
    转:【CSS/JS学习】如何实现单行/多行文本溢出的省略(...)--老司机绕过坑道的正确姿势
    jq实现div移入与移出以及获得与失去焦点
    mysql索引
  • 原文地址:https://www.cnblogs.com/rusking/p/4414173.html
Copyright © 2011-2022 走看看