Oracle的时间函数

原文: http://blog.blueshop.com.tw/pili9141/articles/52486.aspx
http://xiaona.iteye.com/blog/50717

作者整理得很工整啊!建议看原文。


可惜没写To_date(),不过有To_char()就可以看见To_date()了。

--------------------------------------------------
SYSDATE
--◎ 可得到目前系統的時間 
    select sysdate from dual;
    sysdate  
    ----------  
    20-SEP-07
   
常用之日期格式

日期格式                    說明
YYYY/MM/DD              年/月/日
YYYY                    年(4位)
YYY                     年(3位)
YY                      年(2位)
MM                      月份
DD                      日期
D                       星期    PS: 星期日=1  星期一=2  类推。
DDD                     一年之第幾天
WW                      一年之第幾週
W                       一月之第幾週
YYYY/MM/DD HH24:MI:SS   年/月/日 時(24小時制):分:秒
YYYY/MM/DD HH:MI:SS     年/月/日 時(非24小時制):分:秒
J                       Julian day,Bc 4712/01/01 為1
RR/MM/DD                公元2000問題
                  00-49 = 下世紀;50-99 = 本世紀


ex.
select to_char(sysdate,'YYYY/MM/DD') FROM DUAL;             2007/09/20
select to_char(sysdate,'YYYY') FROM DUAL;                   2007
select to_char(sysdate,'YYY') FROM DUAL;                    007
select to_char(sysdate,'YY') FROM DUAL;                     07
select to_char(sysdate,'MM') FROM DUAL;                     09
select to_char(sysdate,'DD') FROM DUAL;                     20
select to_char(sysdate,'D') FROM DUAL;                      5
select to_char(sysdate,'DDD') FROM DUAL;                    263
select to_char(sysdate,'WW') FROM DUAL;                     38
select to_char(sysdate,'W') FROM DUAL;                      3
select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') FROM DUAL;  2007/09/20 15:24:13
select to_char(sysdate,'YYYY/MM/DD HH:MI:SS') FROM DUAL;    2007/09/20 03:25:23
select to_char(sysdate,'J') FROM DUAL;                      2454364
select to_char(sysdate,'RR/MM/DD') FROM DUAL;               07/09/20


如今天是2009年12月22日
取前一天的方法:
select to_char(sysdate-1,'yyyymmdd') from dual
结果:
1 20091221

取前一小时的方法:
select to_char(sysdate - 1/24, 'yyyy/mm/dd hh24:mi:ss ') from dual;

取上一月的方法:
select to_char(add_months(sysdate,-1),'yyyymm') from dual
结果:
1 200911
注:可以将结果插入到变量里,在存储过程或函数中方便调用。

你可能感兴趣的:(oracle,Blog,J#)