Oracle中怎么计算出两个timestamp类型相差的毫秒数

表中有开始时间和结束时间,两个都是timestamp类型,直接相减得到+000000000 00:00:00.513000这种类型,我想得到的数据类型为100000这样的毫秒数,求教如何写

0

5个回答

CREATE OR REPLACE FUNCTION uf_timestamp_diff(endtime in TIMESTAMP,starttime in TIMESTAMP)

RETURN INTEGER

AS

str VARCHAR2(50);

misecond INTEGER;

seconds INTEGER;

minutes INTEGER;

hours INTEGER;

days INTEGER;

BEGIN

str:=to_char(endtime-starttime);

misecond:=to_number(SUBSTR(str,INSTR(str,' ')+10,3));

seconds:=to_number(SUBSTR(str,INSTR(str,' ')+7,2));

minutes:=to_number(SUBSTR(str,INSTR(str,' ')+4,2));

hours:=to_number(SUBSTR(str,INSTR(str,' ')+1,2));

days:=to_number(SUBSTR(str,1,INSTR(str,' ')));

RETURN days*24*60*60*1000+hours*60*60*1000+minutes*60*1000+seconds*1000+misecond;  

END;

1
zy841958835
pluie-cloudy 这是个方法呀 只要调用就行 十万行级的数据最多10s
接近 2 年之前 回复
Yuanhaoxin
Yuanhaoxin 哥们查询数据量很大,这样每个执行下存储过程是不是有点.....慢,就需要一个查询sql
接近 2 年之前 回复

create or replace function oracle_to_unix(in_date IN DATE) return number is

begin

return( (in_date -TO_DATE('19700101','yyyymmdd'))*86400 - TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600);

end oracle_to_unix;

Oracle date时间换成Unix时间戳
1
Yuanhaoxin
Yuanhaoxin in_date -TO_DATE('19700101','yyyymmdd'))*86400 是不是to_date这里还要转一次到timestamp
接近 2 年之前 回复

你看看这个,就是把日期类型转换成毫秒数,进行相减
SELECT TO_NUMBER(TO_DATE('2014-07-28 17:12:45', 'YYYY-MM-DD HH24:MI:SS') -
TO_DATE('1970-01-01 8:0:0', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000
FROM DUAL;

http://www.jb51.net/article/53007.htm

0
Yuanhaoxin
Yuanhaoxin 类型是timestamp 例如20-JUL-17 03.27.32.704000 PM
接近 2 年之前 回复

数据类型 timestamp 例如20-JUL-17 03.27.32.704000 PM

0

--相差天数
select to_number(
(to_date(to_char(b,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
-
(to_date(to_char(a,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
) from a;
--相差小时
select to_number(
(to_date(to_char(b,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
-
(to_date(to_char(a,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
)*24 from a;
--相差分钟
select to_number(
(to_date(to_char(b,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
-
(to_date(to_char(a,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
)*24*60 from a;
--相差秒
select to_number(
(to_date(to_char(b,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
-
(to_date(to_char(a,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
)*24*60*60 from a;
--相差毫秒
select to_number(
(to_date(to_char(b,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
-
(to_date(to_char(a,'yyyy-mm-dd HH:mi:ss'),'yyyy-mm-dd HH:mi:ss'))
)*24*60*60*1000 from a;

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
PostgreSQL得出两个timestamp的秒数差值
n n n sql语句nSELECT EXTRACT(EPOCH FROM (TIMESTAMP '2017-12-16 12:21:13'- TIMESTAMP '2017-12-15 12:21:00'));nn=>n 86413nn计算两个时间的差值更新另一个时间字段nUPDATE your_tablenSET this_time=(EXTRACT(EPO...
Oracle 计算timestamp和date类型的时间差
首先是计算timestamp类型的时间差,rn下面以秒为Demo:rnSELECTrn*rnFROMrnswap_park_record TrnWHERErnROUND (rnTO_NUMBER (rnTO_DATE (rnTO_CHAR (rnSYSDATE,rn'yyyy-mm-dd hh24:mi:ss'rn),rn'yyyy-mm-dd hh24:mi:ss'rn) - TO_DATE (
两个时间相差多少天/毫秒转天数/天数转毫秒/获取当前系统时间
两个时间相差多少天:nnpublic int days(String startDate,String endDate) {n SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");n long to = 0,from = 0;n try {n to = df.parse(endDate).getTim
postgresql获取系统当前时间毫秒数的sql
PG数据库获取当前时间,并转换为毫秒数的sql:nselect floor(extract(epoch from((current_timestamp - timestamp '1970-01-01 00:00:00')*1000)))
关于Date类型转换成毫秒数会出现误差
public class DateTest {rn public static void main(String[] args) {rn //获取本周一开始时间rn Calendar cal = Calendar.getInstance(); rn cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY
计算两个时间之间的毫秒差
DateTime start=DateTime.Now;nDateTime end=DateTime.Now;nTimeSpan ts=end-start;nts.TotalMilliseconds.ToString();
Oracle中Date型转换成Java对应的long型毫秒数
在Java开发中,很多时候我们为了方便会直接使用long型来保存时间,可以通过System.currentTimeMillis()或者是java.util.Date.getTime()来获取;取值为当前日期时间与1970-01-01相差的毫秒数;但是在Oracle里面,默认没有直接提供获取当前时间的毫秒数的相关function,所以要想在SQL里面获得毫秒数,只能自己手动计算下喽,如下:rnsys...
ORACLE日期转毫秒数
有时候,需要对数据库中的时间字段进行一些比较运算,而运算的差值不是整天、整月等,这个时候将时间转换成毫秒数会多了一些判断方法:nn基本方法:(t.#COLUMN#-to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss'))*24*60*60*1000;这样得到的就是当前时间对应的毫秒数;nn用例:nnnSELECTn id,n day,n SHI...
MySQL 计算两个日期之间相差的秒数 SQL
n n n update h5perf_task set run_state = 0 where id inn(SELECT t.id from (SELECT * FROM h5perf_task WHERE run_state = 2nand UNIX_TIMESTAMP( now() )-UNIX_TIMESTAMP(begin_run_time) > ...
JS计算两个时间戳相差的秒数
// 两个时间戳相减 除1000 后取整即可n let second = parseInt((timeStart - timeEnd) / 1000);nnn
在js文件中,计算两个日期差,天,小时,分钟,毫秒,
var date1 = new Date(‘2017-04-25’)n var date2 = new Date(‘2017-06-25’)n var s1 = date1.getTime(), n s2 = date2.getTime();n total= (s2 - s1)
Java 两个时间戳型的时间差
import java.text.*;rnimport java.util.*;rnrnpublic class TestDate ...{rnrn public static void main(String[] args) ...{rn String t1 = "2008-03-10 16:25:02";rn String t2 = "2008-03-10 18:26:02"...
java计算两个时间的时间差
一、时间格式转换rn如果得到的时间格式是String型(数据库存储为varchar)的是日期时间,我们首先要讲日期由String型转为Date型,rn如果得到的时间格式为Date型别不用转。rnString time1 = "2017-01-01 01:01:01";rnString time2 = "2017-02-02 02:02:02";rnrnSimpleDateFormat sdf =
mysql函数,日期相差秒数
1、当前时间和创建时间相差的毫秒数nTIME_TO_SEC(TIMEDIFF(NOW(), create_date))
数据库中获得当前系统时间戳,距离1970年1月1日秒数
-
Java获取当前系统时间,以及计算时间差,返回毫秒差值
//获取当前时间nSystem.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS").format(new Date()));nn/**n * 根据String型时间,获取long型时间,单位毫秒n * @param inVal 时间字符串n * @return long型时间n */npublic static long from...
oracle时间差表达式
oracle时间差表达式,计算两时间相差的天、小时、分钟、秒及毫秒数
Oracle中将毫秒类型时间转换以及取到毫秒时间类型的解决办法
今天在写接口的时候,遇到的一个问题:rn给的时间值是毫秒数类型,但我数据库中时间的类型是date类型,问题来了:那么我怎么去存,且我要再取到其毫秒类型的值,外加个引号?rnrnrnrnrnrnrn方法是:将get到的时间先转换为Long类型在转成Date类型,而在xml中的sql语句中,只要:rnrnrnrnrnrnrn无需什么to_char ,to_date,因为数据库表存的类型是date,所以
timestamp丢失精度问题
mysql数据库存放timestamp格式的数据出现的问题nn场景:在一次的开发中遇到了一个问题,将对象信息实例化到数据库,并缓存在redis。但是在对比redis中的数据和数据库中的数据时候出现了意外,那就是在数据库中类型为timestamp的字段和redis数据不一致。如下图所示:nnn插入的数据=1551793619243nredis存的数据={"vipendtime":1551793619...
使用oracle计算系统当前时间的毫秒数
使用oracle ,计算系统当前时间的毫秒数
计算两个时间戳的差
关键代码如下:rn /*获取系统时间 格式为:*/rn   public void getCurrentDate() {rnrnString da=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis());rnSystem.out.println("当前时间是:"+da);rn       Stri
Oracle数据库Timestamp数据差值计算Sql语句
今天的工作中遇到一个问题,需要计算数据库中两个时间字段的差值,字段类型是timestamp,将字段直接相减,会得到timestamp类型的结果值,不是我想要的number类型的值。在网上找了一些方法,只能得到4舍5入的结果,这样造成毫秒数不准确n 后来再一篇博客中得到启发:n select (to_date(substr(t.end_time, 1, 19), 'yyyy-mm-dd hh24:
oracle 处理毫秒
工作中遇到对毫秒的处理,涉及到从Excel中取时间值,然后通过Java保存到Oracle数据库。nn现对其处理过程进行整理nn一、Java中对毫秒时间的处理nn nnn Date date = new Date();n n n SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSS");n n n String...
计算NSDate之间相差的秒数
//lastDate和nowDate为NSDate类型,最后得到的秒数为lastDate-nowDate所得n NSInteger timeDistance= [lastDate timeIntervalSinceDate:nowDate]
java计算两个时间相差(天、小时、分钟、秒)
public static Long dateDiff(String startTime, String endTime, String format, String str) { rn // 按照传入的格式生成一个simpledateformate对象 rn SimpleDateFormat sd = new SimpleDateFormat(format); ...
计算当前时间和传来的时间(毫秒时间戳)相差的天数(工具类)
前言nn计算当前时间和传来的时间(毫秒时间戳)相差的天数(工具类)nndemonn/**n * 当前时间和传来的时间比较n *n * @param endTime 传来的时间n * @return 相差天数n */n public static int getBetweenNowDays(Timestamp endTime) {n Loc...
hive 计算时间差精确到小时 stamp差
You could use unix_timestamp for dates after 1970:nnnSELECT n (unix_timestamp('2013-01-01 10:10:10') - unix_timestamp('1970-01-01 00:00:00'))/60 nnConvert both dates to seconds from 1970-01-01n Subst...
日期或者是时间字符串类型,转换成毫秒数,进行比较。
Date.parse(datestring):将日期类型转换成毫秒数。datestring:日期或者是时间的字符串。
java取得Timestamp类型的当前系统时间
本文参考:http://djw2007.cool.blog.163.com/blog/static/4388109420128753118445/rnrn方法1:rn rnTimestamp time1 = new Timestamp(System.currentTimeMillis());rnSystem.out.println(time1);rnrn方法2:rnDate date = new ...
Oracle 计算两个时间的差值
[code="sql"]--有两个日期数据START_DATE,END_DATE,欲得到这两个日期的时间差(以天,小时,分钟,秒,毫秒):rn天:rnROUND(TO_NUMBER(END_DATE - START_DATE))rn小时:rnROUND(TO_NUMBER(END_DATE - START_DATE) * 24)rn分钟:rnROUND(TO_NUMBER(END_DATE - S...
SpringMVC Date类型PO,返回页面是毫秒的时间戳
rn rn1. 导入jackson-annotations包;rn rn2. import com.fasterxml.jackson.annotation.JsonFormat;rn rn3. @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")rn rnrn<audio controls="controls" styl...
MySQL的Timestamp插入丢失毫秒的问题
昨天写项目的时候,因为加密的时候涉及到了数据库的一个timestamp类型的字段,写到后面发现生成的密文和接收到的密文死活对不上,唉。n今天吃完午饭看了看,写了个测试方法,n @Testn public void testAddUser() throws Exception {n User user = new User();n n user.setAppOpenid("openId1...
ORACLE计算2个时间段相差时间小时、分、秒
ORACLE计算两个时间段的相差分钟,小时,秒数
PostgresSQL:求平均停留时间--timestamp的日期相减
PostgresSQL:求平均停留时间–timestamp的日期相减nnn 业务需求: 车辆信息表(car_info )记录了一辆车进入停车场时间(checkin_time)和离开停车场的时间(checkout_time),要求出这个停车所有车辆停留的平均时间nnnnncar_info表结构:nnnnn Tablesn Aren Coolnnnn col 3 isn right-ali...
给定毫秒数,求出该毫秒数一共有几天几小时几分钟几秒
var _totalMillisecond = 275606;rnvar _totalSecond = Math.ceil(_totalMillisecond / 1000);nvar _day = Math.floor(_totalSecond / (24 * 60 * 60));nvar _hour = Math.floor((_totalSecond % (24 * 60 * 60)) /
oracle 毫秒数到日期 日期到毫秒数 转换 以及字符串查询 切割 替换 拼接
毫秒转换日期:rnrnSELECT TO_CHAR(1112070645000 / (1000 * 60 * 60 * 24) +          TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') AS CDATErn   FROM DUAL;rnrn rnrn日期转换毫秒:rnrnSELE
将距离格林威治时间时间多少秒与时间类型相互转换
package cn.com.leador.gms.utils;nnimport java.util.Calendar;nimport java.util.Date;nimport java.util.Map;nimport java.util.TimeZone;nnimport com.alibaba.fastjson.JSONObject;nnpublic class DataUtils {
postgresql 计算时间差的秒数、天数
处理时间时用到了,记录一下。nn nn计算时间差天数nnselect extract(day FROM (age('2017-12-10'::date , '2017-12-01'::date)));nn nn计算时间差秒数nnselect extract(epoch FROM (now() - (now()-interval '1 day') ));n nn nn ...
Java与Oracle中关于毫秒的处理
工作中遇到对毫秒的处理,涉及到从Excel中取时间值,然后通过Java保存到Oracle数据库。n现对其处理过程进行整理n一、Java中对毫秒时间的处理nDate date = new Date();nSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSS");nString dateStr = sdf.
Oracle数据库 sql语句 毫秒与日期的相互转换
毫秒转换为日期:nnnnSELECT TO_CHAR(1530867673000 / (1000 * 60 * 60 * 24) + n TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') AS CDATE n FROM DUAL;nnnn日期转换毫秒:nn...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java项目中怎么学习 区块链类型