输入TIMESTAMP类型

一直没有太注意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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-563149/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值