常用函式--時間函式

oracle_db發表於2009-07-06

    經常會碰到一些程式執行得慢,這時需要通過時間來找找出這些問題程式進行處理。如果找呢?這裡會用到與時間相關的一些函式,具體如下:

 
 
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秒鐘(理論值) 

例項:

 select run_proc_name,
       run_status,
       run_start_time,
       run_end_time,
       (run_end_time - run_start_time) * 24 * 60 as use_minutes
 from log_proc_run
 where trunc(run_start_time) = trunc(sysdate)
 order by use_time desc

 

參考:http://blog.blueshop.com.tw/pili9141/articles/52501.aspx

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15720542/viewspace-608450/,如需轉載,請註明出處,否則將追究法律責任。

相關文章