oracle時間日常處理小結

zcs0237發表於2014-09-18
1、測試環境
SYS@ocp> show rel
release 1102000100
$ uname -r
2.6.18-164.el5xen
2、補充:不完全恢復命令
recover database until time '2014-09-15:23:59:23';
3、測試結果如下,歡迎補充、指正


一、秒/second (00~59)
select to_char(sysdate,'ss')  from dual;
--04 當前秒

二、分鐘/minute(00~59)
select to_char(sysdate,'mi')  from dual;                             --51
select to_char(sysdate - interval '1' MINUTE,'mi') from dual;        --50(前一分)
select to_char(sysdate-1/24/60,'HH24:MI')from dual;                  --20:51(前一分)
select to_char(sysdate+1/24/60,'HH24:MI')from dual;                  --20:53 (後一分)

三、小時/hour
1、12進位制
select to_char(sysdate,'MM-DD HH12:MI AM')from dual;                  --09-17 08:53 PM
2、24進位制
select to_char(sysdate,'MM-DD HH24:MI')from dual;                     --09-17 20:53
select to_char(sysdate-1/24,'HH24:MI')from dual;                      --19:53(前一小時)
select to_char(sysdate - 2*interval '1' hour,'hh24:mi') from dual;    --18:53 (前2小時)

四、星期幾
select to_char(sysdate+1,'YYYY-MM-DD')from dual;                        --2014-09-18(後一天)
select to_char(sysdate+1,'day')from dual;                               --thursday(全稱,星期幾)
select to_char(sysdate+1,'dy')from dual;                                --thu(簡寫,星期幾)
select to_char(to_date('2008-08-08','yyyy-mm-dd'),'day') from dual;     --Friday(全稱,星期幾)

五、日期
select to_char(sysdate - interval '7' day,'dd') from dual;                --10(七天前日期)
select to_char(sysdate,'ddd') from dual;                                  --260(當年第幾天)
select to_char(sysdate,'dd') from dual;                                   --17(當月第幾天)  

六、第幾周
select to_char(sysdate,'W') from dual;                                    --3(當月第幾周)
select to_char(sysdate,'WW') from dual;                                   --38(當年第幾周)

七、月份/month
select to_char(sysdate,'mm') from dual;                                  --09 (2位數字)
select to_char(sysdate,'mon') from dual;                                 --sep(英文簡寫)
select to_char(sysdate,'month') from dual;                               --september(英文全稱)
select to_char(add_months(sysdate,1),'month') from dual;                 --october(1個月後)
select to_char(add_months(sysdate,24),'yyyy month') from dual;           --2016 september(2年後)
select to_char(sysdate - interval '7' month,'month') from dual;          --february(減去7個月)

八、第幾季度/quarter(1-4)
select to_char(sysdate, 'Q') from dual;                                   --3
select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;                --3  

九、年份
select to_char(sysdate,'y') from dual;                                     --4(最後一位) 
select to_char(sysdate,'yy') from dual;                                    --14(最後2位)
select to_char(sysdate,'yyy') from dual;                                   --014(最後3位)
select to_char(sysdate,'yyyy') from dual;                                  --2014(完整年份)
select to_char(sysdate - interval '7' year,'yyyy') from dual;              --2007(減去7年)

十、世紀
1、yyyy與rrrr
select to_date('10-DEC-10 12:56:00','YYYY-MM-dd hh24:mi:ss') from dual;     --0010-12-10 12:56:00
select to_date('10-DEC-10 12:56:00','rrrr-MM-dd hh24:mi:ss') from dual;     --2010-12-10 12:56:00
2、YY(2個Y)
與系統當前的世紀相同

select to_char(to_date(sysdate, 'dd-mm-yy'),'yyyy') from dual;              --2014
select to_char(to_date('25-05-14', 'dd-mm-yy'),'yyyy'),
          to_char(to_date('25-05-75', 'dd-mm-yy'),'yyyy') 
from dual;                                                                   --2014 2075
3、RR(2個R)
A、資料庫當前年份在00-49之間:
指定年份在00-49之間,指定年世紀就和當前年份世紀相同。
select to_char(to_date('25-05-14','dd-mm-rr'),'yyyy') from dual;            --2014

指定年份在50-99之間,指定年份世紀等於當前的世紀減1。
select to_char(to_date('25-05-75','dd-mm-rr'),'yyyy') from dual;            --1975
B、資料庫當前年份在50-99之間:
若指定年份在00-49之間,則指定年的世紀就是等於當前世紀加1: 指定11,當前為2055年,則指定年就是2111年。
若指定年份在50-99之間,則指定年的世紀就和當前年世紀相同:  指定51,當前為2076年,那麼指定年就2051年。

十一、時間格式引數
1、預設格式
alter system set reset nls_date_format scope=spfile; 
shutdown immediate
startup
select sysdate from dual;                                     --17-SEP-14(不精確,且不易讀)
select systimestamp from dual;                                --17-SEP-14 09.18.54.449667 PM +08:00(秒後9位,繁瑣)
2、永久指定時間格式
alter system set nls_date_format='yyyymmdd-hh24:mi:ss' scope=spfile;
shutdown immediate
startup
select sysdate from dual;                                        --20140917-21:21:17


本文連結:
http://blog.itpub.net/210154/viewspace-1273473/

zcs0237 
2014.09.18
More cleaner and more efficient!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/210154/viewspace-1273473/,如需轉載,請註明出處,否則將追究法律責任。

相關文章