打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
oracle中 to

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

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
对oracle中date/timestamp的操作
Oracle的日期函数
Oracle学习笔记系列(二)之数据库日期格式转换
oracle date format
date
Oracle 计算两个时间的差值
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服