oracle计算两个日期的时间差时分秒
Oracle函数可以实现诸多的功能,下面就介绍使用Oracle函数计算时间差的实现方法。 两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) 分钟: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60) 秒: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60) 毫秒: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000) 例子: select ROUND(TO_NUMBER(to_date(to_char(sysdate,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd hh24:mi:ss') - to_date('2012-05-11 10:37:40','yyyy-MM-dd hh24:mi:ss'))*24*60*60) from dual . select ROUND(TO_NUMBER(to_date(to_char(sysdate,'yyyy-MM-dd hh24:mi:ss')
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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- postgresql – PL / pgSQL中的EXECUTE … USING语句不适用于
- atitit.解决net.sf.json.JSONException There is a cycle i
- c# – 如何使Visual Studio 2010 2012 2013共存?
- C++对文件进行读写操作范例代码
- Oracle如何增加表空间
- 如何使用C#获取.mp4视频的直接URL?
- Oracle数据库12cR2(项目实战之二):Linux系统安装Oracle1
- cocos2d-js基础 本地数据存储 碰撞检测几种方法
- 如何告诉Xcode在iOS 7中自动设置图像资产渲染模式
- ruby-on-rails-3 – Rails ActiveAdmin – 在实用程序导航中