|
改成按度数就OK了:
with t(n,h1,m1,s1,h2,m2,s2) as
(select 1,
1 /3600*(1/12)*360 h1,
mod(1 / 60, 60)/60 * 360 m1,
mod(1, 60) / 60 *360 s1,
1 / (50 * 60)*(1/12)*360 h2,
mod(1 / 50, 60) / 60*360 m2,
mod(1, 50) / 60*1.2*360 s2
from dual
union all
select t.n + 1,
(t.n + 1) / 3600*(1/12)*360 h1,
mod((t.n + 1) / 60, 60) / 60 *360 m1,
mod((t.n + 1), 60) / 60 *360 s1,
(t.n+1) / (50 * 60)*(1/12)*360 h2,
mod(t.n+1 / 50, 60) / 60*360 m2,
mod(t.n+1, 50) / 60*1.2*360 s2
from t
where not( abs(s1-s2) < 1 and abs(m1-h2) < 1) )
select numtodsinterval(max(n),'SECOND'),max(n) from t |
|