oracle 日期常用函數 (日期運算)
oracle 日期常用函數 (日期運算)
http://blog.blueshop.com.tw/pili9141/articles/52501.aspx
1 | 日期運算 |
2 | |
3 | 1. 更改日期顯示的format |
4 | ex. |
5 | ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD'; |
6 | 階段作業已被更改 |
7 | |
8 | select sysdate from dual; |
9 | |
10 | SYSDATE |
11 | ---------- |
12 | 2007/09/20 |
13 | |
14 | --只對目前session有效,一個 connect 視為一個 session |
15 | |
16 | 2. 日期 + 數值 |
17 | ex. |
18 | select sysdate + 10 from dual; |
19 | |
20 | SYSDATE+10 |
21 | ---------- |
22 | 01-OCT-07 |
23 | |
24 | 3. 日期 - 數值 |
25 | ex. |
26 | select sysdate - 10 from dual; |
27 | |
28 | SYSDATE-10 |
29 | ---------- |
30 | 11-SEP-07 |
31 | |
32 | 4. 日期相減得到日期差 |
33 | ex. |
34 | select sysdate - to_date('20070901','yyyymmdd') aa from dual; |
35 | |
36 | AA |
37 | ------------- |
38 | 20.4508218 |
39 | |
40 | --◎ 包含時間,所以有小數 |
41 | --◎ 可做日期欄位的計算 |
42 | |
43 | select trunc(sysdate - to_date('20070901','yyyymmdd')) aa from dual; |
44 | |
45 | AA |
46 | ---------- |
47 | 20 |
48 | --使用trunc取整數,得到日期 |
49 | |
50 | 5. 日期相減得到小時差 |
51 | ex. |
52 | select trunc((sysdate - to_date('20070901','yyyymmdd'))*24) aa from dual; |
53 | |
54 | AA |
55 | ---------- |
56 | 490 |
57 | |
58 | 6. 日期相減得到分鐘差 |
59 | ex. |
60 | select trunc((sysdate - to_date('20070901','yyyymmdd'))*24*60) aa from dual; |
61 | |
62 | AA |
63 | --------- |
64 | 29459 |
65 | |
66 | 7. 日期相減得到秒數差 |
67 | ex. |
68 | select trunc((sysdate - to_date('20070901','yyyymmdd'))*24*60*60) aa from dual; |
69 | |
70 | AA |
71 | ---------- |
72 | 1767606 |
73 | |
74 | 8. 日期 + n小時 |
75 | ex. |
76 | select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') aa from dual; |
77 | |
78 | AA |
79 | -------------------- |
80 | 2007/09/21 11:03:47 --系統時間 |
81 | |
82 | select to_char(sysdate+2/24,'YYYY/MM/DD HH24:MI:SS') aa from dual; |
83 | |
84 | AA |
85 | -------------------- |
86 | 2007/09/21 13:03:47 --加2小時(理論值) |
87 | |
88 | 9. 日期 + n分鐘 |
89 | ex. |
90 | select to_char(sysdate+10/1440,'YYYY/MM/DD HH24:MI:SS') aa from dual; |
91 | |
92 | AA |
93 | -------------------- |
94 | 2007/09/21 11:13:47 --加10分鐘(理論值) |
95 | |
96 | 10. 日期+ n秒鐘 |
97 | ex. |
98 | select to_char(sysdate+10/86400,'YYYY/MM/DD HH24:MI:SS') aa from dual; |
99 | |
100 | AA |
101 | -------------------- |
102 | 2007/09/21 11:13:57 --加10秒鐘(理論值) |