Oracle计算时间差为毫秒的实现代码

Oracle 中我们知道用 TO_DATE 函数可以进行秒、分、时、天、月、年、周等时间差的计算,但是毫秒却不好计算,TO_DATE 函数只能精确到秒,毫秒则只能用 TO_TIMESTAMP 函数,但是这个函数不像 TO_DATE 这样直接减出来的差值就是 NUMBER 类型,如果用 TO_NUMBER 函数转换也会报错。

这里我是用分隔字符串单独计算毫秒部分,如果有更好的办法,请大家分享一下,下面是查询时间差为毫秒的模板(字段1 – 字段2):

SELECT
(
 (
  (TO_TIMESTAMP(字段1, 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
  -
  (TO_TIMESTAMP(字段2, 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
 ) * 24 * 60 * 60
 +
 TO_NUMBER
 (
  '0' ||
  (
    TO_NUMBER(SUBSTR(字段1, INSTR(字段1, '.')))
    -
    TO_NUMBER(SUBSTR(字段2, INSTR(字段2, '.')))
  )
 )
) * 1000
FROM 表名

这里是相差的毫秒数,如果需要显示小数的秒请删除 “( ) * 1000”这部分,下面是个测试代码,直接运行:

SELECT
(
 (
  (TO_TIMESTAMP('2016-04-13 17:13:50.998', 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
  -
  (TO_TIMESTAMP('2016-04-13 17:13:47.235', 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
 ) * 24 * 60 * 60
 +
 TO_NUMBER
 (
  '0' ||
  (
    TO_NUMBER(SUBSTR('2016-04-13 17:13:50.998', INSTR('2016-04-13 17:13:50.998', '.')))
    -
    TO_NUMBER(SUBSTR('2016-04-13 17:13:47.235', INSTR('2016-04-13 17:13:50.235', '.')))
  )
 )
) * 1000
FROM DUAL

结果为:3763

(0)

相关推荐

  • 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) *

  • Oracle计算时间差为毫秒的实现代码

    Oracle 中我们知道用 TO_DATE 函数可以进行秒.分.时.天.月.年.周等时间差的计算,但是毫秒却不好计算,TO_DATE 函数只能精确到秒,毫秒则只能用 TO_TIMESTAMP 函数,但是这个函数不像 TO_DATE 这样直接减出来的差值就是 NUMBER 类型,如果用 TO_NUMBER 函数转换也会报错. 这里我是用分隔字符串单独计算毫秒部分,如果有更好的办法,请大家分享一下,下面是查询时间差为毫秒的模板(字段1 – 字段2): SELECT ( ( (TO_TIMESTAMP

  • Python3显示当前时间、计算时间差及时间加减法示例代码

    摘要 在使用Python写程序时,经常需要输出系统的当前时间以及计算两个时间之间的差值,或者将当前时间加减一定时间(天数.小时.分钟.秒)来得到新的时间,这篇文章就系统的对这些进行总结.码字不易,喜欢请点赞!!! 包 这里主要使用Python的datetime包实现上述功能. 1.输出当前系统时间 输出结果从总到右分别为Year.Month.Day.Hour.Minute.Second,最后一个MicroSeconds就不用管了. 2.标准化输出方法strftime() 其中: %Y : 表示年

  • 分享javascript计算时间差的示例代码

    在实际应用中,需要计算两个时间点之间的差距,一般来说都是计算当前时间和一个指定时间点之间的差距,并且有时候需要精确到天.小时.分钟和秒,下面就简单介绍一下如何实现此效果. 效果图: 距离新年: 代码如下: <html> <head> <title>javascript计算时间差</title> <style type="text/css"> #thenceThen { font-size:2em; } </style&g

  • js计算时间差代码【包括计算,天,时,分,秒】

    var begintime_ms = Date.parse(new Date(begintime.replace(/-/g, "/"))); //begintime 为开始时间 var endtime_ms = Date.parse(new Date(endtime.replace(/-/g, "/")));   // endtime 为结束时间 得到的结果为 毫秒数,可根据 毫秒数的大小,来判断时间. 当然根据毫秒数 可以根据他们的差值 来求相差的天数或是小时等.

  • Android进阶之使用时间戳计算时间差

    本文实例为大家分享了Android使用时间戳计算时间差的具体代码,供大家参考,具体内容如下 因当前项目需要计算时间差,进行数据处理,所以在Csdn上找了一下,之后修修补补是可以用的,建议大家如果用到项目中的话,可能需要把老的时间戳或者时间format存储在文件或者sp中,之后用于判断,然后进行自己的逻辑处理. Effect : Log执行: 注:这个可以自己简单封装下,比较简单. MainActivity : package com.bakheet.effect.time; import and

  • PowerShell中计算时间差的方法

    PowerShell中有一个New-TimeSpan的cmdlet,使用它可以很方便的计算两个时间之间的差值.差值还可以提取出年.月.日.时.分.秒. 以前,小编想要知道当时时间到十一放假还有多少天时,小编一般会写一个VBScript脚本来简单计算一下.这个VBScript脚本很简单,只有一句话: 复制代码 代码如下: MsgBox DateDiff("d", Now(), "2013-10-1") 新建一个纯文本文件,把这句话放进去.然后再把这个文件的文件名改为x

  • python计算时间差的方法

    本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块datetime和第三方包dateutil(特别是dateutil的rrule.count方法)能非常简单迅速的帮你解决这个问题. from dateutil import rrule import datetime def weeks_between(start_date, end_date): week

  • oralce 计算时间差的实现

    oralce 计算时间差的实现 查询系统时间和给定时间相差的毫秒数 select ceil((sysdate - To_date('2017-03-23 00:00:00' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒数 FROM DUAL; 将account表中第一条数据的dcur_state_start_date(timestamp类型)字段值的相差豪秒数算出来 select ceil((sysdate -TO_DATE( T

  • js时间比较 js计算时间差的简单实现方法

    页面使用dateTimePicker获取数据类型为"12:12:12" 如果输入"11:11:11"要自动计算两者时间差 代码如下: var a="12:49:00",b="14:49:00"; s=a.split(":"); e=b.split(":"); var daya = new Date(); var dayb = new Date(); daya.setHours(s[0])

随机推荐