Oracle计算时间差函数
两个Date类型字段START_DATEEND_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 1000两个Date类型字段
START_DATEEND_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 195120','yyyy-MM-dd HH24mi
ss')from dual
一般SQL中
select to_date('2007-06-28 195120','yyyy-MM-dd HHmm
ss')from dual
区别
1、HH修改为HH24。
2、分钟的mm修改为mi。
24小时的形式显示出来要用HH24 select to_char(sysdate,'yyyy-MM-dd
HH24miss')from dual
select to_date('2005-01-01 131420','yyyy-MM-dd HH24mi
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 hh24miss')from
dual select sysdate,to_char(sysdate,'yyyy-mm-dd hhmiss')from dual
select sysdate,to_char(sysdate,'yyyy-ddd hhmiss')from dual select
sysdate,to_char(sysdate,'yyyy-mm iw-d hhmiss')from dual
参考oracle的相关关文档
(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
3.字符到日期操作
sel ect to_date('2003-10-17 211537','yyyy-mm-dd hh24mi
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 hh24miss')from
dual select sysdate,to_char(sysdate,'yyyy-mm-dd hhmiss')from dual
select sysdate,to_char(sysdate,'yyyy-ddd hhmiss')from dual select
sysdate,to_cha r(sysdate,'yyyy-mm iw-d hhmiss')from dual 参考oracle的相关关文档
(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
3.字符到日期操作
select to_date('2003-10-17 211537','yyyy-mm-dd hh24mi
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 HH24MI
SSxFF')from dual
--返回当前时间的秒毫秒可以指定秒后面的精度(最大=9)
select to_char(current_timestamp(9),'MISSxFF')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