ORACLE 常用函數——日期/時間函數

---------------------------------------------日期/時間函數-------------------------------------------------1:SYSDATE用來得到系統的當前日期SELECTSYSDATEFROMDUAL;--2:ADD_MONTHS增加或減去月份SELECTTO_CHAR(ADD_MONTHS(TO_DATE("20080818","YYYYMMDD"),2),"YYYY-MM-DD")FROMDUAL;SELECTTO_CHAR(ADD_MONTHS(SYSDATE,-1),"YYYY-MM-DD")FROMDUAL--3:LAST_DAY返回日期的最後一天SELECTLAST_DAY(SYSDATE)FROMDUAL;SELECTLAST_DAY(ADD_MONTHS(SYSDATE,-2))FROMDUAL;--4:MONTHS_BETWEEN(date2,date1)給出date2-date1的月份--參數的格式需要注意SELECTMONTHS_BETWEEN(TO_DATE("2011-05-03","YYYY-MM-DD"),TO_DATE("2011-01-23","YYYY-MM-DD"))FROMDUAL;SELECTMONTHS_BETWEEN("19-12月-1999","19-3月-1999")mon_betweenFROMDUAL;--SELECTMONTHS_BETWEEN("2011-1月-23","2011-9月-1")FROMDUAL;文字與格式字元串不匹配--5:NEW_TIME(date,"this","that")給出在this時區=other時區的日期和時間SELECTTO_CHAR(SYSDATE,"YYYY.MM.DDHH24:MI:SS")BeiJing_Time,TO_CHAR(NEW_TIME(SYSDATE,"PDT","GMT"),"YYYY.MM.DDHH24:MI:SS")LOS_ANGELSFROMDUAL;簡寫時區ASTORADT大西洋標準時間HSTORHDT阿拉斯加—夏威夷時間BSTORBDT英國夏令時MSTORMDT美國山區時間CSTORCDT美國中央時區NST新大陸標準時間ESTOREDT美國東部時間PSTORPDT太平洋標準時間GMT格倫威治標準時間YSTORYDTYukon標準時間--6:NEXT_DAY返回與制定日期在同一個星期或之後一個星期內的,你所要求的星期天數的確切日期。--星期日=1星期一=2星期二=3星期三=4星期四=5星期五=6星期六=7SELECTNEXT_DAY(SYSDATE,2)FROMDUAL;--7:CURRENT_DATE當前會話時區中的當前日期SELECTCURRENT_DATEFROMDUAL;--8:CURRENT_TIMESTAMP以timestampwithtimezone數據類型返回當前會話時區中的當前日期SELECTCURRENT_TIMESTAMPFROMDUAL;--9:DBTIMEZONE()返回時區SELECTDBTIMEZONEFROMDUAL;--10:SESSIONTIMEZONE返回回話時區其中DBTIMEZONE是資料庫的,session是針對當前會話的,因為時區在會話級可以改變SELECTSESSIONTIMEZONEFROMDUAL;ALTERSESSIONSETTIME_ZONE="8:00";SELECTSESSIONTIMEZONEFROMDUAL;--11:EXTRACT找出日期或間隔值的欄位值SELECTEXTRACT(MONTHFROMSYSDATE)"MONTH"FROMDUAL;SELECTEXTRACT(DAYFROMSYSDATE)AS"DAY"FROMDUAL;SELECTEXTRACT(YEARFROMSYSDATE)AS"YEAR"FROMDUAL;--12:LOCALTIMESTAMP返回會話中的日期和時間SELECTLOCALTIMESTAMPFROMDUAL;--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;--返回當前年月日----上月最後一天SELECTTO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE,-1)),"YYYY/MM/DD")FROMDUAL;----:上各月的今天SELECTTO_CHAR(ADD_MONTHS(SYSDATE,-1),"YYYY-MM-DD")FROMDUAL;----上個月第一天SELECTTO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+1,-2),"YYYY-MM-DD")FirstDayFROMDUAL;---按照每周進行統計SELECTTO_CHAR(SYSDATE,"WW")FROMDUAL;---按照每月進行統計SELECTTO_CHAR(SYSDATE,"MM")FROMDUAL;----按照每季度進行統計SELECTTO_CHAR(SYSDATE,"Q")FROMDUAL;---按照每年進行統計SELECTTO_CHAR(SYSDATE,"YYYY")FROMDUAL;---要找到某月中所有周五的具體日期SELECTTO_CHAR(T.D,"YY-MM-DD")FROM(SELECTTRUNC(SYSDATE,"MM")+ROWNUM-1ASDFROMDBA_OBJECTSWHEREROWNUM<32)TWHERETO_CHAR(T.D,"MM")=TO_CHAR(SYSDATE,"MM")ANDTRIM(TO_CHAR(T.D,"DAY"))="星期五"下面的內容應該屬於格式化函數,但是為了對日期函數做詳細敘述,就把TO_CHAR的內容放到這裡了Y或YY或YYY年的最後一位,兩位或三位SELECTTO_CHAR(SYSDATE,"YYY")FROMDUAL;SELECTTO_CHAR(SYSDATE,"YY")FROMDUAL;SYEAR或YEARSYEAR使公元前的年份前加一負號SELECTTO_CHAR(SYSDATE,"SYEAR")FROMDUAL;--TWENTYELEVENQ季度,1~3月為第一季度SELECTTO_CHAR(SYSDATE,"Q")FROMDUAL;--2表示第二季度MM月份數SELECTTO_CHAR(SYSDATE,"MM")FROMDUAL;--04表示4月RM月份的羅馬錶示SELECTTO_CHAR(SYSDATE,"RM")FROMDUAL;--IV表示4月Month用9個字元長度表示的月份名SELECTTO_CHAR(SYSDATE,"MONTH")FROMDUAL;--4月WW當年第幾周SELECTTO_CHAR(SYSDATE,"WW")FROMDUAL;--24表示2002年6月13日為第24周W本月第幾周SELECTTO_CHAR(SYSDATE,"W")FROMDUAL;--2011年04月26日為第4周DDD當年第幾天.1月1日為001,2月1日為032SELECTTO_CHAR(SYSDATE,"DDD")FROMDUAL;DD當月第幾天SELECTTO_CHAR(SYSDATE,"DD")FROMDUAL;D周內第幾天SELECTTO_CHAR(SYSDATE,"D")FROMDUAL;DY周內第幾天縮寫SELECTTO_CHAR(SYSDATE,"DY")FROMDUAL;HH或HH1212進位小時數SELECTTO_CHAR(SYSDATE,"HH")FROMDUAL;HH2424小時制SELECTTO_CHAR(SYSDATE,"HH24")FROMDUAL;MI分鐘數(0~59)SELECTTO_CHAR(SYSDATE,"MI")FROMDUAL;提示注意不要將MM格式用於分鐘(分鐘應該使用MI)。MM是用於月份的格式,將它用於分鐘也能工作,但結果是錯誤的。SS秒數(0~59)SELECTTO_CHAR(SYSDATE,"SS")FROMDUAL;--------------------------------------------------------------------------------------
推薦閱讀:

函數中傳入的參數是可變與不可變類型會怎樣?
Excel 中SumProduct函數的妙用
使用PyTorch從零開始構建Elman循環神經網路
sqlite時間函數及時間處理
LOOKUP函數的幾種經典用法

TAG:時間 | 函數 | 日期 |