oracle中 to_date() 如何取得毫秒

來源:互聯網
上載者:User
2011-12-15 15:27  

to_date如何取得毫秒?

由於oracle中date類型只支援到秒,不支援到毫秒,所以to_date()不能取到毫秒。
如果要取到毫秒,oracle 9i以上版本,可以使用timestamp類型,是date的擴充類型,能支援到毫秒,毫秒的顯示精度是6位,不過有效位是3位,即最大值達到999,滿1000ms就進為1s。而與to_date()對應的轉換函式可以使用to_timestamp()。
select to_timestamp('2011-12-15 10:40:10.345', 'yyyy-MM-dd HH24:MI:ss.ff') as mydate from dual;

如果想將timestamp又轉換成date類型,可以使用cast()函數,但得到的date類型沒有了毫秒值。如下:

select cast(to_timestamp('2011-12-15 10:40:10.345', 'yyyy-MM-dd HH24:MI:ss.ff') as date) as mydate from dual;

如把"1970-01-0100:00:00.356“,轉化成時間,需要保留毫秒數,怎麼做?我一般都是用到秒的(to_date('1970-01-0100:00:00.356','yyyy-mm-dd hh24:mi:ss'))。 毫秒怎麼表示啊,請指點!

9i以上版本
-----------------------------
SQL>select to_char(systimestamp,'yyyy-mm-ddhh24:mi:ssxff') time1,
to_char(current_timestamp) time2 from dual;

TIME1                     TIME2
---------------------------------------------------------------------------------------------
2003-10-24 10:48:45.656000 24-OCT-03 10.48.45.656000 AM+08:00
可以看到,毫秒在to_char中對應的是FF。

SQL> select to_timestamp('2003-10-2410:48:45.656000','yyyy-mm-dd hh24:mi:ssxff') from dual;

TO_TIMESTAMP('2003-10-2410:48:
-------------------------------------------------
24-10月-03 10.48.45.656000000 上午

還值得一提的是:毫秒的顯示精度是6位,不過有效位是3位,即最大值達到999,滿1000ms就進為1s

date類型只能到秒
用timestamp可以到毫秒

select to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss.ff ') fromdual

 

原文連結:http://hi.baidu.com/suofang/item/a78e3c394d41fb8af5e4ad10

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.