Oracle的时间函数

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

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


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

--------------------------------------------------
SYSDATE
--◎ 可得到目前系統的時間
select sysdate from dual;
sysdate
----------
20-SEP-07

常用之日期格式

[table]
|日期格式 |說明|
|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 = 本世紀|
[/table]

ex.
[table]
|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|
[/table]

如今天是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周边)