輸入TIMESTAMP型別

yangtingkun發表於2009-03-06

一直沒有太注意TIMESTAMP型別的用法,今天才發現一些以前不知道的用法。

 

 

如果提到TIMESTAMP類似,絕大部分人首先會想到SYSTIMESTAMP

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
------------------------------------------------
07-3
-09 12.28.47.593000 上午 +08:00

對於當前時間附近的時間,可以透過SYSTIMESTAMP進行簡單的加減法:

SQL> SELECT SYSTIMESTAMP - 5 FROM DUAL;

SYSTIMESTAMP-5
--------------
02-3
-09

不過從結果上也可以發現,這樣得到的實際上是日期型別。

如果要結果仍然是TIMESTAMP型別,那麼就不能直接做加減法,而是要透過INTERVAL的方式:

SQL> SELECT SYSTIMESTAMP - INTERVAL '5' DAY FROM DUAL;

SYSTIMESTAMP-INTERVAL'5'DAY
--------------------------------------------------------------
02-3
-09 12.32.25.890000000 上午 +08:00

除了這種方法外,另一種常用的方法就是利用TO_TIMESTAMP進行轉換:

SQL> SELECT TO_TIMESTAMP('2009-1-15 22:12:23.238292348', 'YYYY-MM-DD HH24:MI:SS.FF') FROM DUAL;

TO_TIMESTAMP('2009-1-1522:12:23.238292348','YYYY-MM-DDHH24:MI:SS.FF')
---------------------------------------------------------------------------
15-1
-09 10.12.23.238292348 下午

其實除了這兩種方法外,還有一種直接指定TIMESTAMP型別的方法。如果使用過AS OF語句,那麼就會對這種方法有所瞭解:

SQL> SELECT TIMESTAMP '2009-1-15 22:12:23.238292348' FROM DUAL;

TIMESTAMP'2009-1-1522:12:23.238292348'
----------------------------------------------------------------------
15-1
-09 10.12.23.238292348 下午

使用這種方法還可以指定TIMESTAMP的時區:

SQL> SELECT TIMESTAMP '2009-1-15 22:12:23.238' AT TIME ZONE 'GMT'
  2  FROM DUAL;

TIMESTAMP'2009-1-1522:12:23.238'ATTIMEZONE'GMT'
----------------------------------------------------------------------
15-1
-09 02.12.23.238000000 下午 GMT

SQL> SELECT TIMESTAMP '2009-1-15 22:12:23.238' AT TIME ZONE '+08:00'
  2  FROM DUAL;

TIMESTAMP'2009-1-1522:12:23.238'ATTIMEZONE'+08:00'
----------------------------------------------------------------------
15-1
-09 10.12.23.238000000 下午 +08:00

當然使用TO_TIMESTAMP_TZ也可以得到包含時區資訊的TIMESTAMP

SQL> SELECT TO_TIMESTAMP_TZ(
  2  '2009-1-15 22:12:23.238 +08:00',
  3  'YYYY-MM-DD HH24:MI:SS.FF TZH:TZM')
  4  FROM DUAL;

TO_TIMESTAMP_TZ('2009-1-1522:12:23.238+08:00','YYYY-MM-DDHH24:MI:SS.FFTZH:T
---------------------------------------------------------------------------
15-1
-09 10.12.23.238000000 下午 +08:00

 

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

相關文章