加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ORACLE 常用函数——日期/时间函数

发布时间:2020-12-12 16:28:42 所属栏目:百科 来源:网络整理
导读:SYSDATE 用来得到系统的当前日期 SELECT SYSDATE FROM DUAL; ADD_MONTHS 增加或减去月份 TO_CHAR(ADD_MONTHS(TO_DATE( ' 20080818 , YYYYMMDD ),245)"> 2 YYYY-MM-DD ) DUAL; TO_CHAR(ADD_MONTHS(SYSDATE,128); line-height:1.5!important">- 1 DUAL LAST_DA
  1. SYSDATE
    用来得到系统的当前日期

    SELECTSYSDATEFROMDUAL;
  2. ADD_MONTHS增加或减去月份

    TO_CHAR(ADD_MONTHS(TO_DATE('20080818,YYYYMMDD),245)">2YYYY-MM-DD)DUAL;


    TO_CHAR(ADD_MONTHS(SYSDATE,128); line-height:1.5!important">-1DUAL

  3. LAST_DAY返回日期的最后一天

    LAST_DAY(SYSDATE)DUAL;

    LAST_DAY(ADD_MONTHS(SYSDATE,245)">))DUAL;

  4. MONTHS_BETWEEN(date2,date1)给出date2date1的月份

    --参数的格式需要注意
    MONTHS_BETWEEN(TO_DATE(2011-05-032011-01-23MONTHS_BETWEEN(19-12月-199919-3月-1999)mon_betweenSELECTMONTHS_BETWEEN('2011-1月-23','2011-9月-1')FROMDUAL;文字与格式字符串不匹配
  5. NEW_TIME(date,'this','that')给出在this时区=other时区的日期和时间 TO_CHAR(SYSDATE,0); line-height:1.5!important">YYYY.MM.DDHH24:MI:SS)BeiJing_Time, TO_CHAR(NEW_TIME(SYSDATE,0); line-height:1.5!important">PDTGMT)LOS_ANGELSFROMDUAL;
  6. NEXT_DAY返回与制定日期在同一个星期或之后一个星期内的,你所要求的星期天数的确切日期。


    星期日=1星期一=2星期二=3星期三=4星期四=5星期五=6星期六=7NEXT_DAY(SYSDATE,245)">DUAL;
  7. CURRENT_DATE当前会话时区中的当前日期

    CURRENT_DATECURRENT_TIMESTAMP以timestampwithtimezone数据类型返回当前会话时区中的当前日期


    CURRENT_TIMESTAMPDUAL;
  8. DBTIMEZONE()返回时区

    DBTIMEZONEDUAL;

  9. SESSIONTIMEZONE返回回话时区其中DBTIMEZONE是数据库的,session是针对当前会话的,因为时区在会话级可以改变
    SESSIONTIMEZONEALTERSESSIONSETTIME_ZONE8:00;

    EXTRACT找出日期或间隔值的字段值

    EXTRACT(MONTHSYSDATE)""DAYSYSDATE)ASYEARLOCALTIMESTAMP返回会话中的日期和时间

    LOCALTIMESTAMPDUAL;
  10. TRUNC(for dates)   TRUNC函数为指定元素而截去的日期值。   其具体的语法格式如下:   TRUNC(date[,fmt])   其中:   date 一个日期值   fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去   下面是该函数的使用情况:   TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am')   ='24-Nov-1999 12:00:00 am'   TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'   SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL; --返回当年第一天.   SELECT TRUNC(SYSDATE,'MM') FROM DUAL; --返回当月第一天.   SELECT TRUNC(SYSDATE,'D') FROM DUAL; --返回当前星期的第一天.   SELECT TRUNC(SYSDATE,'DD') FROM DUAL;--返回当前年月日
    --上月最后一天TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE,245)">)),0); line-height:1.5!important">YYYY/MM/DD--:上各月的今天--上个月第一天TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+)FirstDay-按照每周进行统计WW-按照每月进行统计MM--按照每季度进行统计Q-按照每年进行统计YYYY-要找到某月中所有周五的具体日期TO_CHAR(T.D,0); line-height:1.5!important">YY-MM-DD)

    (
    TRUNC(SYSDATE,245)">ROWNUMD
    DBA_OBJECTS
    WHERE<32
    )T
    ANDTRIM(TO_CHAR(T.D,0); line-height:1.5!important">DAY星期五


    下面的内容应该属于格式化函数,但是为了对日期函数做详细叙述,就把TO_CHAR的内容放到这里了

    Y或YY或YYY年的最后一位,两位或三位
    YYYDUAL;
    YYDUAL;

    SYEAR或YEARSYEAR使公元前的年份前加一负号
    SYEARDUAL;TWENTYELEVEN

    Q季度,
    ~3月为第一季度
    2表示第二季度
    MM月份数
    04表示4月
    RM月份的罗马表示
    RMIV表示4月Month用9个字符长度表示的月份名
    MONTH4月
    WW当年第几周
    24表示2002年6月13日为第24周
    W本月第几周
    W2011年04月26日为第4周
    DDD当年第几天.1月1日为001,2月1日为032
    DDDDUAL;

    DD当月第几天
    DDDUAL;

    D周内第几天
    DDUAL;

    DY周内第几天缩写
    DYDUAL;

    HH或HH1212进制小时数
    HHDUAL;

    HH2424小时制
    HH24DUAL;

    MI分钟数(
    059MIDUAL;
    提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。

    SS秒数(
    SSDUAL;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读