问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ORACEL sql语句 两时间字段求差

发布网友 发布时间:2022-04-22 04:39

我来回答

8个回答

热心网友 时间:2022-04-08 07:14

两个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)

Oracle计算时间差函数 2008-08-20 10:00 两个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)

外加to_date与to_char函数:

ORACLE中:
select to_date('2007-06-28 19:51:20','yyyy-MM-dd HH24:mi:ss') from al;
一般SQL中:
select to_date('2007-06-28 19:51:20','yyyy-MM-dd HH:mm:ss') from al;
区别:
1、HH修改为HH24。
2、分钟的mm修改为mi。

24 小时的形式显示出来要用 HH24

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from al;

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from al;

to_date() function

1. 日期格式参数 含义说明

D 一周中的星期几

DAY 天的名字,使用空格填充到 9 个字符

DD 月中的第几天

DDD 年中的第几天

DY 天的简写名

IW ISO 标准的年中的第几周

IYYY ISO 标准的四位年份

YYYY 四位年份

YYY,YY,Y 年份的最后三位,两位,一位

HH 小时,按 12 小时计

HH24 小时,按 24 小时计

MI 分

SS 秒

MM 月

Mon 月份的简写

Month 月份的全名

W 该月的第几个星期

WW 年中的第几个星期 1. 日期时间间隔操作

当前时间减去 7 分钟的时间

select sysdate,sysdate - interval '7' MINUTE from al

当前时间减去 7 小时的时间

select sysdate - interval '7' hour from al

当前时间减去 7 天的时间

select sysdate - interval '7' day from al

当前时间减去 7 月的时间

select sysdate,sysdate - interval '7' month from al

当前时间减去 7 年的时间

select sysdate,sysdate - interval '7' year from al

时间间隔乘以一个数字

select sysdate,sysdate - 8 *interval '2' hour from al

2. 日期到字符操作

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from al

参考 oracle 的相关关文档 (ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)

3. 字符到日期操作

select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from al

具体用法和上面的 to_char 差不多。

4.TO_NUMBER
使用TO_NUMBER函数将字符转换为数字
TO_NUMBER(char[, '格式'])

数字格式格式
9 代表一个数字
0 强制显示0
$ 放置一个$符
L 放置一个浮动本地货币符
. 显示小数点
, 显示千位指示符

oracle中的to_date参数含义

1.日期格式参数含义说明
D 一周中的星期几
DAY 天的名字,使用空格填充到9个字符
DD 月中的第几天
DDD 年中的第几天
DY 天的简写名
IW ISO标准的年中的第几周
IYYY ISO标准的四位年份
YYYY 四位年份
YYY,YY,Y 年份的最后三位,两位,一位
HH 小时,按12小时计
HH24 小时,按24小时计
MI 分
SS 秒
MM 月
Mon 月份的简写
Month 月份的全名
W 该月的第几个星期
WW 年中的第几个星期 1.日期时间间隔操作
当前时间减去7分钟的时间
select sysdate,sysdate - interval ’7’ MINUTE from al
当前时间减去7小时的时间
select sysdate - interval ’7’ hour from al
当前时间减去7天的时间
select sysdate - interval ’7’ day from al
当前时间减去7月的时间
select sysdate,sysdate - interval ’7’ month from al
当前时间减去7年的时间
select sysdate,sysdate - interval ’7’ year from al
时间间隔乘以一个数字
select sysdate,sysdate - 8 *interval ’2’ hour from al
2.日期到字符操作
select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from al
select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from al
select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from al
select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from al
参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
3. 字符到日期操作
select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from al
具体用法和上面的to_char差不多。
4. trunk/ ROUND函数的使用
select trunc(sysdate ,’YEAR’) from al
select trunc(sysdate ) from al
select to_char(trunc(sysdate ,’YYYY’),’YYYY’) from al
5.oracle有毫秒级的数据类型
--返回当前时间 年月日小时分秒毫秒
select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from al;
--返回当前时间的秒毫秒,可以指定秒后面的精度(最大=9)
select to_char(current_timestamp(9),’MI:SSxFF’) from al;
6.计算程序运行的时间(ms)
declare
type rc is ref cursor;
l_rc rc;
l_mmy all_objects.object_name%type;
l_start number default dbms_utility.get_time;
begin
for I in 1 .. 1000 loop
open l_rc for 'select object_name from all_objects '|| 'where object_id = ' || i;
fetch l_rc into l_mmy;
close l_rc;
end loop;
dbms_output.put_line ( round( (dbms_utility.get_time-l_start)/100, 2 ) ||' seconds ...' );
end;

热心网友 时间:2022-04-08 08:32

oracle两个时间字段可以直接相减,直接相减的的结果单位为天
oracle中时间的计算单位为天,得到天数之后可以自己转换为其他单位
months_between(结束时间,开始时间) 结果为月

热心网友 时间:2022-04-08 10:07

--获取两时间的相差豪秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒数 FROM DUAL;

热心网友 时间:2022-04-08 11:58

直接想减就成。如:
select sysdate-to_date('2011-1-1','yyyy-mm-dd') from al
得到:262.691469907407
该数字单位是天,要换算成其他单位,就简单了

热心网友 时间:2022-04-08 14:06

直接相减,得到的数据是天数;
to_date('20110920121010','yyyymmddhh24miss')-todate('20110920121000','yyyymmddhh24miss')=10/(24*3600)天 ,,,,具体计算值会是小数
如果要得到其它单位的时间差,需要做“天数差->目标时间差”的单位换算。
如要换算到秒:10/(24*3600)天 * (24*3600)秒/天 == 10秒

热心网友 时间:2022-04-08 16:31

1、可以使用EXTRACT( )函数,提取日期的不同部分,如day, hour 等

2、将各个部分相减后,使用||连接起来即可

热心网友 时间:2022-04-08 19:12

sele * from plsql where 日期1-日期2>1

热心网友 时间:2022-04-08 22:10

确定都是date类型的话 直接减就行了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 中信银行白金信用卡有哪些服务? SQL> select ename, to_char(hiredate,' sql语句中如何将字符类型转换成数字类型? 这条SQL语句中的to_char(sysdate, 'J')中的'J'是什... select to_char(sysdate, 'MM' ) from dual 来获取... 中信银行 自助餐 二人同行 如果有多张卡 求sql server 2008中类似oracle中to_char转换日期... 中信百度金融联名信用卡visa白金卡 上海中信银行信用卡哪里吃自助餐是买一送一的 "0001"在pl/sql中如何实现,格式装换是用to_char(4,... SQL 字符串使用 前段时间申请了一张中信白金卡,额度才一万多,还... oracle中的to_char() 在sqlserver2008中如何使用?... 中信银行信用卡买的自助餐券在哪? 如何自定义excel函数实现sql中的to_char功能? sql查询语句中to_char和trunc在限制时间是的区别 黑色棉布衣服掉色了怎么办 sql语言的to_date 和 to_char怎么区分?如何使用啊... 关于sql语句to_char的问题 sql中to_char是什么? 什么是我的PMI ID号?什么是我的PMP编号? 中信银行信用卡白金精英卡有什么特色服务? 求SQL 函数TO DATE的用法 怎麼用oracle函数to_date(),to_char()写的sql语句??? 中信信用卡动卡空间里面升级白金卡480免费24次精品... PMI ID跟PMP Number是一样的吗?如果不是,那该怎么... 中信白金卡有什么好处 oracle的pl/sql,不使用to_char,有办法把小数点前不... PMP认证考试中,什么是我的PMIID号? 中信信用卡在哪吃喝玩有优惠? 中信银行白金卡怎么样,年费和优惠是什么? 冰冻海参的正确吃法 想要牛肉软烂多汁,炖牛肉时可以放哪些调料? 加什么调料能使牛肉容易煮烂? 想要牛肉软烂多汁,炖的时候可以放哪些调料? 炖牛肉时放哪些调料可以让牛肉软烂鲜香? 想让炖的牛肉多汁又入味,需要放什么调料? 炖牛肉放什么能爱烂 "粘蝇纸"是谁发明的? 用什么方法能很快,很有效的除尽家里的苍蝇