oracle 计算timestamp时间差?搞了一下午了!!! 你的时间的格式是什么?如果是data类型,可以直接的相减。如果是时间戳的话,需要先转换为data类型。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你好,是时间戳的,网上找了很久,转换成date的话,感觉后面的毫秒数被四舍五入了 SELECT (TO_DATE(date2,'yyyy-mm-dd hh24:mi:ss')-TO_DATE(date1,'yyyy-mm-dd hh24:mi:ss'))*86400000-(TO_NUMBER(m1)-TO_NUMBER(m2))FROM (selectsubstr(to_char(to_timestamp('2014-01-13 15:40:11.761000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),0,19) date1,substr(to_char(to_timestamp('2014-01-13 15:40:11.761000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),21,3) m1,substr(to_char(to_timestamp('2014-01-13 15:40:17.576000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),0,19) date2,substr(to_char(to_timestamp('2014-01-13 15:40:17.576000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),21,3) m2from dual)不知这样行不行,先计算日期间的毫秒数,然后减去小数的毫秒差。 select (to_date(substr(lEndTime, 1, 19), 'yyyy-mm-dd hh24:mi:ss') - to_date(substr(lBeginTime, 1, 19), 'yyyy-mm-dd hh24:mi:ss')) * 24 * 3600 * 1000 + to_number(substr(lEndTime, 21, 3)) - to_number(substr(lBeginTime, 21, 3)) from dual--截取前面的日期相减,后面毫秒数相减。 PL SQL developer如何监控所有提交的sql语句? 在oracle中如何按照日期查询并且删除表中的数据 怎么删除所有表的数据 在 Oracle9i中 查询再 2009-01 至 2009-06 所有用户 第一次所消费的费用 求一条sql语句,关于分组 *****************sql语句求简化,求速度**************** 一个SQL语句怎么写 高手请问,在创建回退段时,出现“自动撤消模式中的回退段操作非法”, 求一条语句! 统计出多少种分段方式 oracle 存储过程并发问题~ oracle 10g 奇怪问题
(TO_NUMBER(m1)-TO_NUMBER(m2))
FROM (
select
substr(to_char(to_timestamp('2014-01-13 15:40:11.761000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),0,19) date1,
substr(to_char(to_timestamp('2014-01-13 15:40:11.761000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),21,3) m1,
substr(to_char(to_timestamp('2014-01-13 15:40:17.576000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),0,19) date2,
substr(to_char(to_timestamp('2014-01-13 15:40:17.576000','yyyy-mm-dd hh24:mi:ss.ff6'),'yyyy-mm-dd hh24:mi:ss.ff6'),21,3) m2
from dual
)不知这样行不行,先计算日期间的毫秒数,然后减去小数的毫秒差。
select (to_date(substr(lEndTime, 1, 19), 'yyyy-mm-dd hh24:mi:ss') -
to_date(substr(lBeginTime, 1, 19), 'yyyy-mm-dd hh24:mi:ss')) * 24 * 3600 * 1000 +
to_number(substr(lEndTime, 21, 3)) -
to_number(substr(lBeginTime, 21, 3))
from dual
--截取前面的日期相减,后面毫秒数相减。