您的位置:首页 > 数据库 > Oracle

oracle 获取最近的整点、半点时间

2014-05-08 12:05 405 查看
最近需要取一个时间,就是最近的半小时整点时间,比如12点,12点半等。

第一种写法

select trunc(sysdate, 'hh24') + decode(sign(trunc(sysdate, 'mi') - trunc(sysdate, 'hh24') - 1/48), 1, 1/48, 0) t from dual;


第二种写法

select trunc(sysdate, 'hh24') + decode(sign(to_number(to_char(sysdate, 'mi')) - 30), 1, 1/48, 0) t from dual;


这两种方法用循环50W次测时间差别不大。

这里直接用sign取正负,再用decode编码得到是否需要加半小时时间。第一种写法是时间加减,第二种写法是取得分钟数转整数再做减法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: