在SQL server 中DATEDIFF函数,在Oracle中用那个?帮忙,谢谢.
解决方案 »
- 数据库存储过程中执行查询语句
- 快速解决字符集乱码问题的两句话
- 外表问题,再次发问.
- Oracle中 联合主键 作为 另一个表(联合)外键的问题,麻烦各位帮看看
- Oracle多表查询
- ▉▉▉▉▉▉高手请进,关于listener.ora的问题,响影OracleOraHome90Agent服务的工作?
- export时出现exp-00024的错误?
- 高分求解:win2000 SERVER不能装oracle 8.0?
- Oracle11g 导入dmp文件报不存在的属性
- oracle创建数据库报关于java问题待解决
- 很菜的问题,安装oracle9i安到第二张cd 安装不下去了,怎么办?
- oracle中在已经创建好的标中制定位置增加字段的sql语句怎么写,谢谢!在线等......
-- -- works in roughly the same way as sybase datsdiff
-- call would be eg. datediff('month',date1,date2)
-- p_what would be 'HOUR', 'DAY','MONTH' OR 'QUARTER'
datediff( p_what in varchar2,
p_d1 in date,
p_d2 in date ) return number
as
l_result number;
begin
l_result:=null;
if (upper(p_what) = 'HOUR') then
l_result:=((p_d2-p_d1)*24);
end if;
if (upper(p_what) = 'DAY') then
l_result:=(p_d2-p_d1);
end if;
if (upper(p_what) = 'MONTH') then
l_result:=round(MONTHS_BETWEEN(p_d2,p_d1),0);
end if;
if (upper(p_what) = 'QUARTER') then
l_result:=((floor(MONTHS_BETWEEN(p_d2,TRUNC(p_d2,'YEAR'))/3)+1) - (floor(MONTHS_BETWEEN(p_d1,TRUNC(p_d1,'YEAR'))/3)+1) + (((to_char(p_d2, 'yyyy')) - (to_char(p_d1, 'yyyy')))*4));
end if;
l_result:=floor(l_result);
return l_result;
end;
/
SQL> SELECT DATEDIFF('MONTH','11-JUL-1975','07-JUN-2004') FROM DUAL;DATEDIFF('MONTH','11-JUL-1975','07-JUN-2004')
---------------------------------------------
347
同一天 当然相差是0天了Select to_number(to_date('2011-05-01 05:00:00','yyyy-mm-dd hh24:mi:ss')-to_date('2011-05-01','yyyy-mm-dd hh24:mi:ss'))*24 From dual没明白楼上的意思