| 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秒鐘(理論值) |
2010年7月27日 星期二
oracle 日期計算
訂閱:
意見 (Atom)