oracle计算时间差

 
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)*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 dual   
一般SQL中   
select to_date('2007-06-28 195120','yyyy-MM-dd HHmm  
ss')from dual   
区别   
1、HH修改为HH24。   
2、分钟的mm修改为mi。   
24小时的形式显示出来要用HH24 select to_char(sysdate,'yyyy-MM-dd   
HH24miss')from dual   
select to_date('2005-01-01 131420','yyyy-MM-dd HH24mi  
ss')from dual     
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 dual   
当前时间减去7小时的时间   
select sysdate-interval'7'hour from dual   
当前时间减去7天的时间   
select sysdate-interval'7'day from dual   
当前时间减去7月的时间   
select sysdate,sysdate-interval'7'month from dual 当前时间减去7年的时间   
select sysdate,sysdate-interval'7'year from dual   
时间间隔乘以一个数字   
select sysdate,sysdate  
-8*interval'2'hour from dual 2.日期到字符操  作   
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24miss')from   


 
 
dual select sysdate,to_char(sysdate,'yyyy-mm-dd hhmiss')from dual   
select sysdate,to_char(sysdate,'yyyy-ddd hhmiss')from dual select   
sysdate,to_char(sysdate,'yyyy-mm iw-d hhmiss')from dual   
参考oracle的相关关文档  
(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)   
3.字符到日期操作   
sel ect to_date('2003-10-17 211537','yyyy-mm-dd hh24mi  
ss')from dual   
具体用法和上面的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 dual   
当前时间减去7小时的时间   
select sysdate-interval'7'hour from dual   
当前时间减去7天的时间   
select sysdate-interval'7'day from dual   
当前时间减去7月的时间   


 
 
select sysdate,sysdate-interval'7'month from dual   
当前时间减去7年的时间   
select sysdate,sysdate-interval'7'year from dual   
时间间隔乘以一个数字   
select sysdate,sysdate-8*interval'2'hour from dual 2.日期到字符操  作   
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24miss')from   
dual select sysdate,to_char(sysdate,'yyyy-mm-dd hhmiss')from dual   
select sysdate,to_char(sysdate,'yyyy-ddd hhmiss')from dual select   
sysdate,to_cha r(sysdate,'yyyy-mm iw-d hhmiss')from dual 参考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 dual   
具体用法和上面的to_char差不多。   
4.trunk/ROUND函数的使用   
select trunc(sysdate,'YEAR')from dual select trunc(sysdate)from   
dual select to_char(trunc(sysdate,'YYYY'),'YYYY')from dual 5.oracle  
有毫秒级的数据类型   
--返回当前时间年月日小时分秒毫秒   
select to_char(current_timestamp(5),'DD-MON-YYYY HH24MI  
SSxFF')from dual  


 
 
 
--返回当前时间的秒毫秒可以指定秒后面的精度(最大=9)   
select to_char(current_timestamp(9),'MISSxFF')from dual   
6.计算程序运行的时间(ms)   
declare type rc is ref cursor   
l_rc rc   
l_dummy all_objects.object_name%type   
l_start number default dbms_utility.get_time   
begin for Iin 1.1000 loop open l_rc for'select object_name from   
all_objects'||'where object_id='||i fetch l_rc into l_dummy   
close l_rc   
end loop   
dbms_output.put_line(round((dbms_utility.get_time-  
l_start)/100,2)||'seconds.')     
end

猜你喜欢

转载自zhangyw31.iteye.com/blog/1962465