ORACLE DATE和TIMESTAMP資料類型的比較(二)

來源:互聯網
上載者:User
oracle|比較|資料|資料類型
原著作者:James Koopmann

TIMESTAMP資料的格式化顯示和DATE 資料一樣。注意,to_char函數支援date和timestamp,但是trunc卻不支援TIMESTAMP資料類型。這已經清楚表明了在當兩個時間的差別極度重要的情況下,使用TIMESTAMP資料類型要比DATE資料類型更確切。

如果你想顯示TIMESTAMP的小數秒資訊,參考下面:

1  SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS:FF3') "Date" FROM date_table

Date

-----------------------

06/20/2003 16:55:14:000

06/26/2003 11:16:36:000

在上例中,我只現實了小數點後3位的內容。

計算timestamp間的資料差別要比老的date資料類型更容易。當你直接相減的話,看看會發生什麼。結果將更容易理解,第一行的17天,18小時,27分鐘和43秒。

1  SELECT time1,

  2         time2,

  3         substr((time2-time1),instr((time2-time1),' ')+7,2)                 seconds,

  4         substr((time2-time1),instr((time2-time1),' ')+4,2)                 minutes,

  5         substr((time2-time1),instr((time2-time1),' ')+1,2)                 hours,

  6         trunc(to_number(substr((time2-time1),1,instr(time2-time1,' '))))   days,

  7         trunc(to_number(substr((time2-time1),1,instr(time2-time1,' ')))/7) weeks

  8*   FROM date_table

TIME1                       TIME2                      SECONDS MINUTES HOURS DAYS WEEKS

-------------------------   -------------------------- ------- ------- ----- ---- -----

06/20/2003:16:55:14:000000  07/08/2003:11:22:57:000000  43     27      18    17    2

06/26/2003:11:16:36:000000  07/08/2003:11:22:57:000000  21     06      00    12    1

這就意味著不再需要關心一天有多少秒在麻煩的計算中。因此,得到天數、月數、天數、時數、分鐘數和秒數就成為用substr函數摘取出數位事情了。

系統日期和時間

為了得到系統時間,返回成date資料類型。你可以使用sysdate函數。

SQL> SELECT SYSDATE FROM DUAL;

為了得到系統時間,返回成timestamp資料類型。你可以使用systimpstamp函數。

SQL> SELECT SYSTIMESTAMP FROM DUAL;

你可以設定初始化參數FIXED_DATE指定sysdate函數返回一個固定值。這用在測試日期和時間敏感的代碼。注意,這個參數對於systimestamp函數無效。

SQL> ALTER SYSTEM SET fixed_date = '2003-01-01-10:00:00';

System altered.

 

SQL> select sysdate from dual;

SYSDATE

---------

01-JAN-03

 

SQL> select systimestamp from dual;

SYSTIMESTAMP

---------------------------------------------------------

09-JUL-03 11.05.02.519000 AM -06:00

當使用date和timestamp類型的時候,選擇是很清楚的。你可以隨意處置date和timestamp類型。當你試圖轉換到更強大的timestamp的時候,需要注意,它們既有類似的地方,更有不同的地方,而足以造成破壞。兩者在簡潔和間隔尺寸方面各有優勢,請合理地選擇。

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.