oracle计算两个日期的时间差时分秒
2017-03-16 11:24
387 查看
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'),'yyyy-MM-dd hh24:mi:ss')
- to_date('2013-01-16 00:00:00','yyyy-MM-dd hh24:mi:ss'))*24*60*60) from dual
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;
两个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'),'yyyy-MM-dd hh24:mi:ss')
- to_date('2013-01-16 00:00:00','yyyy-MM-dd hh24:mi:ss'))*24*60*60) from dual
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;
相关文章推荐
- oracle计算两个日期的时间差时分秒
- 计算两个日期或者时间之间的时间差----oracle
- Qt 计算两个日期的时间差并以时分秒显示出来
- Oracle 计算两个日期间时间排除非工作日及非工作时间
- 计算两个日期时间差
- 计算两个日期的时间间隔
- 精确计算日期物理差(计算给定的两个日期间的物理年月日时分秒差)
- [日期时间]函数(-),计算两个时间之间的秒数
- 计算两个日期的时间差,输出它们之间的天数
- ORACLE的时间间隔计算 比如求距某日期时间后30分钟的
- Oracle中计算两个时间段的时分秒天周数语句
- 计算两个日期的时间间隔
- Oracle一些日期时间的计算
- oracle 计算两个时间的分钟差 sql语句
- C#日期比较计算两个日期的时间间隔,日期格式化
- 根据指定两个日期计算出这些时间内有多少天是周末 php程序函数代码
- 计算两个日期的时间间隔
- 在VC中计算两个日期时间中的时间差(分钟单位),其它类似。
- 计算两个日期的时间间隔
- 计算两个日期的时间间隔