oracle计算两个日期之间时间差值sql

Oracle 计算两个时间差值 两个日期数据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) * 2 阅读详情

sql Server中有函数DATEDIFF能够比较方便的计算出两个时间点之间的时间差值,但是oracle就没有,需要自己写方法计算,这是比较坑爹的。

自己写了个分享一下

create or replace function datediff(type in varchar2, startTime in varchar2,endTime in varchar2,v in varchar2) return number  as
       v_result number;
       sql_1 varchar2(200);
begin
       if(type = 'day') then
           sql_1 := 'select '||v||'(TO_NUMBER(to_date('''||startTime||''',''YYYY-MM-DD'') - to_date('''||endTime||''',''YYYY-MM-DD''))) from dual';
       elsif(type = 'month') then
           sql_1 := 'select '||v||'(months_between(to_date('''||startTime||''',''YYYY-MM-DD'') - to_date('''||endTime||''',''YYYY-MM-DD''))) from dual' ;
       elsif(type = 'week') then
           sql_1 := 'select '||v||'(TO_NUMBER(to_date('''||startTime||''',''YYYY-MM-DD'') - to_date('''||endTime||''',''YYYY-MM-DD''))/7) from dual ';
       end if;
       EXECUTE IMMEDIATE sql_1  into v_result ;
       return (v_result);
end;


测试sql :  select datediff('week','2015-4-12','2015-4-1','floor') as week from dual ;


注释:

// 第一个参数type   'week'表示周,'month'表示月,'day'表示天
//中间传俩日期
//第四个参数:周或月四舍五入用‘round’ ,向上取整用‘ceil’ 向下取整用‘floor’


Oracle中实现datadiff函数 首先在oracle中没有datediff()函数 可以用这个方法在oracle中实现该函数的功能。 立即下载

相关推荐

OracleVarchar 型数据 计算时间

   在开发程序时,我们经常会遇到要计算从startTime到endTime的时间,但这个记录时间的字段是Varchar型的,这就需要先进行数据类型的转换才能达到目的:      先来看看ORACLE系统时间时间计算方法: SELECT     SYSDATE,SYSDATE-500,     TO_CHAR(SYSDATE,'yyyy')-     TO_CHAR(SYSDATE-50...

cjwxd126715的专栏 2405

SQL】-【计算两个varchar类型的timestamp的毫秒

TRANSTAMP3、TRANSTAMP2Oracle数据库中的类型为varchar,但实际保存的值是时间戳timestamp类型,现在要计算二者的毫秒

CaraYQ的博客 906

java计算两个时间时间

一、时间格式转换 如果得到的时间格式是String型(数据库存储为varchar)的是日期时间,我们首先要讲日期由String型转为Date型, 如果得到的时间格式为Date型别不用转。 String time1 = "2017-01-01 01:01:01"; String time2 = "2017-02-02 02:02:02"; SimpleDateFormat sdf =

Nothing down, nothing up 4449

oracle SQL语句中进行时间加减

oracle SQL语句中进行时间加减 加法 select sysdate,add_months(sysdate,12) from dual;         --加1年 select sysdate,add_months(sysdate,1) from dual;         --加1月 select sysdate,to_char(sysdate+7,'yyyy-

evildog的专栏 1万+

oracle 时间相减,月份相加减

  oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相的小时数 oracle 两个时间相减默认的是天数*24*60 为相的分钟数 oracle 两个时间相减默认的是天数*24*60*60 为相的秒数 测试如下: SQL>select sysdate from dual;        2008-2-20 14:32:35 SQL&...

无忌 3553

sqlserver时间秒数_ORACLE中,怎样获得两个时间的秒数?

展开全部ORACLE中获得两个时32313133353236313431303231363533e58685e5aeb931333365633864间相的秒数有以下方法:一、常规方法:1、创建表create table t_timestamp (id number, t1 timestamp, t2 timestamp);2、插入数据insert into t_timestampvalues (...

weixin_39768247的博客 1094

Oracle计算时间

Oracle计算时间两个日期数据START_DATE,END_DATE,欲得到这两个日期时间(以天,小时,分钟,秒,毫秒):天:  ROUND(TO_NUMBER(END_DATE - START_DATE))小时:ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)分钟:ROUND(TO_NUMBER(END_DATE - STA

荒漠甘泉 1361

oracle两个时间段相分钟数

场景应用: 两个时间多少?时?分?秒? 字段A varchar2 类型 2018-02-26 07:05:00 在oracle 中,时间加减运算后的结果是以天为单位的,如果想得到秒,则乘以 86400(一天的秒数 24*60*60) 就好了 想得到分 24*60 --天 select (to_date( t.A,'yyyy-mm-dd hh24:mi:ss')- to_d...

天翔空水木的专栏 1万+

datediff(datediff函数用于计算两个日期之间时间)

Date())是什么意?DateDiff("yyyy& 下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。 日期部分 缩写 year yy, yyyy quarter qq, q Month mm, m dayofyear dy, y...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 1392

Oracle计算时间

Oracle计算时间 计算时间Oracle DATA数据类型的一个常见问题。Oracle支持日期计算,你可以创建诸如“日期1-日期2”这样的表达式来计算两个日期之间时间。 一旦你发现了时间异,你可以使用简单的技巧来以天、小时、分钟或者秒为单位来计算时间。为了得到数据,你必须选择合适的时间度量单位,这样就可以进行数据格式隐藏。 使用完善复杂的转换函...

斗牛士 205

oracle计算时间

oracle计算时间 计算时间oracle data数据类型的一个常见问题。oracle支持日期计算,你可以创建诸如“日期1-日期2”这样的表达式来计算两个日期之间时间。 一旦你发现了时间异,你可以使用简单的技巧来以天、小时、分钟或者秒为单位来计算时间。为了得到数据,你必须选择合适的时间度量单位,这样就可以进行数据格式隐藏。 使用完善复杂的转换

dreamyao5的专栏 557

Oracle中如何计算时间

计算时间Oracle DATA数据类型的一个常见问题。Oracle支持日期计算,你可以创建诸如“日期1-日期2”这样的表达式来计算两个日期之间时间。一旦你发现了时间异,你可以使用简单的技巧来以天、小时、分钟或者秒为单位来计算时间。为了得到数据,你必须选择合适的时间度量单位,这样就可以进行数据格式隐藏。使用完善复杂的转换函数来转换日期是一个诱惑,但是你会发现这不是最好的解决方法。ro

hyde114的专栏 589

Oracle计算时间表达式

Oracle计算时间表达式 有两个日期数据START_DATE,END_DATE,欲得到这两个日期时间(以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) 分钟: ROUND(TO_NUMBER(END_DATE

wang0928007的专栏 2367

datediff oracle11,数据库中datediff函数用法

数据库中datediff函数怎么用如:SELECT DATEDIFF(D,'2015-6-16','2015-6-20') 返回结果表示 两个日期间隔的天数sql数据库中的datediff函数是什么意思SQL中DateDiff的用法 DATEDIFF 返回跨两个指定日期日期时间边界数。 语法 DATEDIFF ( datepart , startdate , enddate ) 参数 date...

weixin_33068783的博客 4947

Oracle 常用计算

时间计算oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相的小时数 oracle 两个时间相减默认的是天数*24*60 为相的分钟数 oracle 两个时间相减默认的是天数*24*60*60 为相的秒数 --MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL> select month...

iteye_8416的博客 204
上一篇: 图片上传预览功能实现
下一篇: web应用中的调度——简介
小火_
博客等级 码龄14年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值