众所周知,Oracle的时间可以直接用来加减操作,比如
|
select sysdate, sysdate - 2 from dual"SYSDATE" "SYSDATE-2"
-----------------------------------
"19-5月 -09" "17-5月 -09"
|
很明显,sysdate - 2表示的日期-2,也就是2天前的时间,2天后的时间+2就可以了。
但是,有的时候我们不需要2天前或者2天后这么长的时间,我们需要2小时前,或者2分钟前的时间。
但是并没有发现Oracle有关于小时或者分钟直接操作的函数,本人也非常纳闷。
后来查找资料和朋友们的帮助,才知道日期用于加减操作的时候是一个浮点数,于是做了2个实验。
实验1:
|
select to_char(sysdate, 'yyyy-MM-dd hh24:mi:ss') cur_time,
to_char(sysdate - 2 / 24, 'yyyy-MM-dd hh24:mi:ss') time_before_2_hour
from dual;"CUR_TIME" "TIME_BEFORE_2_HOUR"
-------------------------------------------------------------------
"2009-05-19 09:21:58" "2009-05-19 07:21:58"
|
实验2:
|
select to_char(sysdate, 'yyyy-MM-dd hh24:mi:ss') cur_time,
to_char(sysdate - 2 / (24 * 60), 'yyyy-MM-dd hh24:mi:ss') time_before_2_minutes
from dual;"CUR_TIME" "TIME_BEFORE_2_MINUTES"
---------------------------------------------------------------------
"2009-05-19 09:24:18" "2009-05-19 09:22:18"
|
结果显示比较明显了,2小时前就是2/24天,2分钟就是2/(24*60)天,Oracle日期的加减还是day上的加减,不过他是一个浮点数,所以转换成日期之后实际上就是时间上的加减。
【编辑推荐】
- Oracle数据库中的字符处理技巧
- 善用Oracle表空间设计提升数据库性能
- 详解Oracle数据库磁盘I/O优化
当前标题:浅谈利用浮点数操作Oracle数据库日期
网页地址:http://www.csdahua.cn/qtweb/news33/442783.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
快上网