oracle 计算时间大于当前时间的最近2条记录
关注:202 答案:2 手机版
解决时间 2021-02-13 15:55
提问者爱情是不う可等
2021-02-12 19:20
如果有一张表 calenderDetail 表里有一个字段是 calender 存储的是Date类型 我想查询这种表里离当前时间时间最近的 2条记录 求写出sql~!!!!!!
最佳答案
二级知识专家風聲提筆
2021-02-12 19:26
SELECt * FROM (SELECt * FROM calenderDetail A ORDER BY a. calender desc ) WHERe rownum <3 ;
全部回答
1楼轉角離身
2021-02-12 19:39
1、获得时间差毫秒数:
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
2、获得相差秒数:
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
3、获得相差分钟数、小时数,以此类推,默认时间相减获得相差的天数
4、获得相差的月份数
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
这里可以直接使用months_between函数
5、获得相差的年份
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
我要举报
如以上信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
推荐资讯
大家都在看