您的位置:首页 > 数据库 > Oracle

ORACLE常用的一些时间函数

2011-12-02 11:25 543 查看
日期運算函數
2
3ADD_MONTHS(d,n)
4--時間點d再加上n個月
5
6ex.
7select sysdate, add_months(sysdate,2) aa from dual;
8
9SYSDATE AA
10---------- ----------
1121-SEP-07 21-NOV-07
12
13LAST_DAY(d)
14--時間點d當月份最後一天
15
16ex.
17select sysdate, LAST_DAY(sysdate) LAST_DAY from dual;
18
19SYSDATE LAST_DAY
20---------- ---------
2121-SEP-07 30-SEP-07
22
23NEXT_DAY(d,number)
24--◎ 時間點d開始,下一個星期幾的日期
25--◎ 星期日 = 1 星期一 = 2 星期二 = 3
26-- 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7
27
28ex.
29select sysdate, NEXT_DAY(sysdate,2) aa from dual;
30
31SYSDATE AA
32---------- ----------
3321-SEP-07 24-SEP-07
34
35MONTHS_BETWEEN(d1,d2)
36--計算d1與d2相隔的月數
37
38ex.
39select trunc(MONTHS_BETWEEN(to_date('20071101','yyyymmdd'),
40to_date('20070820','yyyymmdd'))) aa
41from dual;
42
43AA
44----------
452
46
47NEW_TIME(d,c1,c2)
48--轉換新時區
49
50ex.
51select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') 台北,
52to_char(NEW_TIME(sysdate,'EST','GMT'),'YYYY/MM/DD HH24:MI:SS') 格林威治
53from dual;
54
55台北 格林威治
56-------------------- -------------------
572007/09/21 14:36:53 2007/09/21 19:36:53
58
59ROUND(d[,fmt])
60--◎ 對日期作四捨五入運算
61--◎ 月的四捨五入以每月的15號為基準
62--◎ 年的四捨五入以每年6月為基準
63
64ex.
65select sysdate, ROUND(sysdate,'year') aa from dual;
66
67SYSDATE AA
68---------- ----------
6921-SEP-07 01-JAN-08
70
71select sysdate, ROUND(sysdate,'month') aa from dual;
72
73SYSDATE AA
74---------- ----------
7521-SEP-07 01-OCT-07
76
77TRUNC(d[,fmt])
78--對日期作擷取運算
79
80ex.
81select sysdate, TRUNC(sysdate,'year') aa from dual;
82
83SYSDATE AA
84---------- ----------
8521-SEP-07 01-JAN-07
86
87select sysdate, TRUNC(sysdate,'month') aa from dual;
88
89SYSDATE AA
90---------- ----------
9121-SEP-07 01-SEP-07
另外dual

这个表称为伪表,事实上是不存在的,一般用来对一些变量赋值用,比如:select sysdate into v_date from dual。也用来做一些虚构数据用,比如:SELECT ROWNUM FROM dual CONNECT BY LEVEL <= 100。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: