Oracle获取两个日期相差的小时
2016-09-27 14:34
435 查看
项目中求两个日期相差的小时数,用ceil出现小时数据不对,研究ceil(n)函数,发现函数取大于等于数值n的最小整数,这很有可能出现约数问题,经过测试round()函数和to_number()函数相结合,相对与ceil函数精确。
--ceil()
select ceil((to_date('2016-09-01 22','yyyy-MM-dd HH24')-to_date('2016-08-31 00','yyyy-MM-dd HH24'))*24)+1
from dual;
--round()
select round(to_number(to_date('2016-09-01 22','yyyy-MM-dd HH24')-to_date('2016-08-31 00','yyyy-MM-dd HH24'))*24)+1
from dual;
--ceil()
select ceil((to_date('2016-09-01 22','yyyy-MM-dd HH24')-to_date('2016-08-31 00','yyyy-MM-dd HH24'))*24)+1
from dual;
--round()
select round(to_number(to_date('2016-09-01 22','yyyy-MM-dd HH24')-to_date('2016-08-31 00','yyyy-MM-dd HH24'))*24)+1
from dual;
相关文章推荐
- ODI数据抽取教程_02创建简单项目
- Oracle之表空间、索引、管理权限及角色
- JSP+Servlet+javabean+oracle实现页面多条件模糊查询
- Oracle执行计划
- Oracle内存参数调优技术详解
- Oracle彻底优化——优化内存
- oracle游标的使用
- ORACLE数据泵备份还原数据库
- 如何让oracle的select强制走索引
- oracle 12c RMAN异机恢复还原RAC集群(ASM)为单实例库(文件系统)记录
- Oracle数据去重(不是distinct)
- 彻底搞懂Oracle字符集
- 关于oracle被锁kill_session问题
- oracle新建表空间及用户
- 使用version参数解决Oracle数据泵版本差异
- Oracle分析函数总结(3)- 数值分布 - cume_dist,percent_rank,ntile,percentile_disc,percentile_cont,ratio_to_report
- oracle中max(ID)查到9比10大,如何处理
- 【Oracle】Oracle版本导入导出问题
- 【ROLLUP】Oracle分组函数之ROLLUP魅力
- oracle 密码的加密和解密