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