原理:(比這個時間大的最小時間-此時間)的絕對值和(比這個時間小的最大時間-此時間)的絕對值 做比較,那個小,說明那個時間離此時間近。
sql代碼如下:
select
case when (SELECT (min(chk_time)-to_date('2012-06-10 12:53:40', 'YYYY-MM-DD HH24:MI:SS'))
FROM TM_TANK_CHK_T@smes30
where node_id = 300407
and chk_time > to_date('2012-06-10 12:53:40', 'YYYY-MM-DD HH24:MI:SS') )
>
(SELECT (to_date('2012-06-10 12:53:40', 'YYYY-MM-DD HH24:MI:SS')-max(chk_time))
FROM TM_TANK_CHK_T@smes30
where node_id = 300407
and chk_time < to_date('2012-06-10 12:53:40', 'YYYY-MM-DD HH24:MI:SS'))
then
(SELECT max(chk_time)
FROM TM_TANK_CHK_T@smes30
where node_id = 300407
and chk_time < to_date('2012-06-10 12:53:40', 'YYYY-MM-DD HH24:MI:SS'))
else
( SELECT min(chk_time)
FROM TM_TANK_CHK_T@smes30
where node_id = 300407
and chk_time > to_date('2012-06-10 12:53:40', 'YYYY-MM-DD HH24:MI:SS'))
end a
from dual