Datum auf Viertelstunde runden


Die Funktion viertelstunde rundet ein Datum auf die volle Viertelstunde ab.

Beispiel


select sysdate from dual
SYSDATE
-------------------
24.06.2005 11:44:07
1 row selected

select viertelstunde(sysdate) from dual
viertelstunde(SYSDATE)
-----------------------
24.06.2005 11:30:00
1 row selected

select sysdate from dual
SYSDATE
-------------------
24.06.2005 11:45:04
1 row selected

select viertelstunde(sysdate) from dual
viertelstunde(SYSDATE)
-----------------------
24.06.2005 11:45:00
1 row selected

Quellcode


CREATE OR REPLACE function viertelstunde(p_date date) return date
is
-- Ereugt einen Linkcode der garantiert eindeutig ist,
--
--
v_mi number;
begin
   v_mi := to_char(p_date,'MI');
   if v_mi >= 0 and v_mi < 15 then
      v_mi := 0;
   elsif v_mi >= 15 and v_mi < 30 then
      v_mi := 15;
   elsif v_mi >= 30 and v_mi < 45 then
      v_mi := 30;
   elsif v_mi >= 45 then
      v_mi := 45;
   end if;
   return to_date(to_char(p_date,'yyyymmddhH24')||v_mi,'yyyymmddhh24mi');
end;
/

Inhalt