Oracle计算时间差表达式
--获取两时间的相差豪秒数
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;
/*
相差豪秒数
----------
86401000
1 row selected
*/
--获取两时间的相差秒数
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) 相差秒数 from DUAL;
/*
相差秒数
----------
86401
1 row selected
*/
--获取两时间的相差分钟数
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) 相差分钟数 from DUAL;
/*
相差分钟数
----------
1441
1 row selected
*/
--获取两时间的相差小时数
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) 相差小时数 from DUAL;
/*
相差小时数
----------
25
1 row selected
*/
--获取两时间的相差天数
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'))) 相差天数 from DUAL;
/*
相差天数
----------
2
1 row selected
*/
--获取两时间月份差
select (EXTRACT(year from to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year from to_date('2008-04-30','yyyy-mm-dd'))) * 12 +
EXTRACT(month from to_date('2008-05-01','yyyy-mm-dd')) - EXTRACT(month from to_date('2008-04-30','yyyy-mm-dd')) months
from dual;
/*
MONTHS
----------
13
1 row selected
*/
--获取两时间年份差
select EXTRACT(year from to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year from to_date('2008-04-30','yyyy-mm-dd')) years from dual;
/*
YEARS
----------
1
1 row select
相关文档:
二、以形参的形式定义和使用记录、对象类型
在用作形式参数时,记录类型和对象类型有很多相同之处。在将它们作为游标、函数或过程的形式参数以前,事先都必须定义一个记录类型或者对象类型。
如下例所示:
记录
DECLARE
-- Define a record type.
TYPE individual_record IS RECORD
(individual_id ......
三、嵌套表的使用方法
1、将嵌套表定义为PL/SQL的程序构造块
TYPE type_name IS TABLE OF element_type[NOT NULL];
如下例所示:
DECLARE
-- Define a nested table of variable length strings.
TYPE card_table IS TABLE OF VARCHAR2(5 CHAR);
-- Declare and initialize a n ......
导读:
2009年9月Oracle公司发布了期待已久的Oracle 11g R2,本系列文章将给读者一一揭开新版本中的新特性,并会介绍企业如何利用这些新特性将现有的Oracle 9i,10g,11g R1升级到Oracle 11g R2.
经历了难以忍受的长时间等待,Oracle公司突然在9月1发布了Oracle 11g R2,我不得不承认Oracle的保密工作做得 ......
(1) v$sql
一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1)。如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息。
例1:
这里介绍以下child cursor
user A: select * from tbl
user B: select * from tbl
大家认为这两条语句是不是一样的啊,可能会有很多人会说是一样 ......
用date型字段进行数据检索时需要注意:数据格式化!
此数据格式化不同于用SimpleDateFormat("yyyy-MM-dd")对象进行格式化,而是用Oracle的内置函数to_date()
或标识符date来格式化。
例如:
有个字段是date数据,我想查询某某年度的数据。
错误写法:s ......