ORACLE 常用函数——日期/时间函数
发布时间:2020-12-12 14:25:46 所属栏目:百科 来源:网络整理
导读:- -------------------------------------------日期/时间函数----------------------------------------------- -- 1:SYSDATE 用来得到系统的当前日期 SELECT SYSDATE FROM DUAL; -- 2:ADD_MONTHS 增加或减去月份 SELECT TO_CHAR(ADD_MONTHS(TO_DATE( ' 2
-
-------------------------------------------日期/时间函数-----------------------------------------------
-- 1:SYSDATE 用来得到系统的当前日期 SELECT SYSDATE FROM DUAL; -- 2:ADD_MONTHS 增加或减去月份 SELECT TO_CHAR(ADD_MONTHS(TO_DATE( ' 20080818 ' , YYYYMMDD ' ), 2 ),0); line-height:1.5!important">YYYY-MM-DD ' ) FROM DUAL; SELECT TO_CHAR(ADD_MONTHS(SYSDATE,128); line-height:1.5!important">- 1 ),255); line-height:1.5!important">FROM DUAL 3:LAST_DAY 返回日期的最后一天 SELECT LAST_DAY(SYSDATE) FROM DUAL; SELECT LAST_DAY(ADD_MONTHS(SYSDATE,0); line-height:1.5!important">2 )) 4:MONTHS_BETWEEN(date2,date1) 给出date2 - date1的月份 参数的格式需要注意 SELECT MONTHS_BETWEEN(TO_DATE( 2011-05-03 2011-01-23 ' )) SELECT MONTHS_BETWEEN( 19-12月-1999 19-3月-1999 ' )mon_between SELECTMONTHS_BETWEEN('2011-1月-23','2011-9月-1')FROMDUAL;文字与格式字符串不匹配 5:NEW_TIME(date,'this','that') 给出在this时区 = other时区的日期和时间 SELECT 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">PDT GMT ' )LOS_ANGELS FROM DUAL; 简写时区 AST OR ADT大西洋标准时间 HST OR HDT阿拉斯加—夏威夷时间 BST OR BDT英国夏令时 MST OR MDT美国山区时间 CST OR CDT美国中央时区 NST新大陆标准时间 EST OR EDT美国东部时间 PST OR PDT太平洋标准时间 GMT格伦威治标准时间 YST OR YDTYukon标准时间 6:NEXT_DAY 返回与制定日期在同一个星期或之后一个星期内的,你所要求的星期天数的确切日期。 星期日=1星期一=2星期二=3星期三=4星期四=5星期五=6星期六=7 SELECT NEXT_DAY(SYSDATE,0); line-height:1.5!important">2 ) 7:CURRENT_DATE 当前会话时区中的当前日期 SELECT CURRENT_DATE 8:CURRENT_TIMESTAMP 以timestamp with timezone数据类型返回当前会话时区中的当前日期 SELECT CURRENT_TIMESTAMP 9:DBTIMEZONE() 返回时区 SELECT DBTIMEZONE 10:SESSIONTIMEZONE 返回回话时区其中DBTIMEZONE是数据库的,session是针对当前会话的,因为时区在会话级可以改变 SELECT SESSIONTIMEZONE ALTER SESSION SET TIME_ZONE = 8:00 ' ; 11:EXTRACT 找出日期或间隔值的字段值 SELECT EXTRACT( MONTH FROM SYSDATE)" MONTH " DAY FROM SYSDATE) AS " DAY " YEAR YEAR " 12:LOCALTIMESTAMP 返回会话中的日期和时间 SELECT LOCALTIMESTAMP FROM DUAL; --13: 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;--返回当前年月日 --上月最后一天 SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE,0); line-height:1.5!important">1 )),0); line-height:1.5!important">YYYY/MM/DD --:上各月的今天 --上个月第一天 SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE) + 1 ,0); line-height:1.5!important">' )FirstDay -按照每周进行统计 WW -按照每月进行统计 MM --按照每季度进行统计 Q -按照每年进行统计 YYYY -要找到某月中所有周五的具体日期 SELECT TO_CHAR(T.D,0); line-height:1.5!important">YY-MM-DD ' ) FROM ( SELECT TRUNC(SYSDATE,0); line-height:1.5!important">' ) + ROWNUM 1 AS D FROM DBA_OBJECTS WHERE ROWNUM < 32 )T WHERE TO_CHAR(T.D,128); line-height:1.5!important">= TO_CHAR(SYSDATE,0); line-height:1.5!important">' ) AND TRIM(TO_CHAR(T.D,0); line-height:1.5!important">DAY ' )) 星期五 ' 下面的内容应该属于格式化函数,但是为了对日期函数做详细叙述,就把TO_CHAR的内容放到这里了 Y或YY或YYY年的最后一位,两位或三位 YYY FROM DUAL; YY FROM DUAL; SYEAR或YEARSYEAR使公元前的年份前加一负号 SYEAR FROM DUAL; TWENTYELEVEN Q季度, 1 ~3月为第一季度 2表示第二季度 MM月份数 04表示4月 RM月份的罗马表示 RM IV表示4月 Month 用9个字符长度表示的月份名 MONTH 4月 WW当年第几周 24表示2002年6月13日为第24周 W本月第几周 W 2011年04月26日为第4周 DDD当年第几天.1月1日为001,2月1日为032 DDD FROM DUAL; DD当月第几天 DD FROM DUAL; D周内第几天 D FROM DUAL; DY周内第几天缩写 DY FROM DUAL; HH或HH1212进制小时数 HH FROM DUAL; HH2424小时制 HH24 FROM DUAL; MI分钟数( 0 ~ 59 ) MI FROM DUAL; 提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。 SS秒数( SS ------------------------------------------------------------------------------------ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |