Deutsches Application Express Forum (ApEx) -- Installation , Engine / SQL , Anwendungen
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL)
geschrieben von: christian_goto (---.dip0.t-ipconnect.de)
Datum:

moin,
ich mach das auch im package.hier mal diverse funktionen:

package:
----------

FUNCTION HHMI2Minuten(iHHMI IN VARCHAR2 DEFAULT NULL) RETURN NUMBER;
FUNCTION Minuten2HHMI(iMinuten IN PLS_INTEGER DEFAULT 0, i0alsNULL BOOLEAN DEFAULT FALSE) RETURN VARCHAR2;
FUNCTION Interval2HHMI(iVonDate DATE DEFAULT SYSDATE, iBisDate IN DATE DEFAULT SYSDATE) RETURN VARCHAR2;
FUNCTION InduZeit2MinutenNum(iInduZeit IN VARCHAR2 DEFAULT NULL) RETURN NUMBER;
FUNCTION Minuten2InduZeit(iMinuten IN PLS_INTEGER DEFAULT 0, i0alsNULL BOOLEAN DEFAULT FALSE) RETURN VARCHAR2;
FUNCTION Minuten2InduZeitNum(iMinuten IN PLS_INTEGER DEFAULT 0, i0alsNULL BOOLEAN DEFAULT FALSE) RETURN NUMBER;


package body:
-------------------------------------------------------------------------------------------


FUNCTION HHMI2Minuten(iHHMI IN VARCHAR2 DEFAULT NULL)
RETURN NUMBER
IS
vHHMI VARCHAR2(5) := NVL(iHHMI,'00:00');
BEGIN
RETURN 60*TO_NUMBER(SUBSTR(vHHMI,1,2))+TO_NUMBER(SUBSTR(vHHMI,4,2));
END HHMI2Minuten;
--------------------------------------------------------------------------------------------

FUNCTION Minuten2HHMI(iMinuten IN PLS_INTEGER DEFAULT 0, i0alsNULL BOOLEAN DEFAULT FALSE)
RETURN VARCHAR2
IS
vStunden PLS_INTEGER;
vMinuten PLS_INTEGER := iMinuten;
BEGIN
IF vMinuten=0 AND i0alsNULL THEN
RETURN NULL;
ELSE
vStunden := FLOOR(vMinuten/60);
vMinuten := vMinuten - vStunden*60;
RETURN TO_CHAR(vStunden,'FM09')||':'||TO_CHAR(vMinuten,'FM09');
END IF;
END Minuten2HHMI;
--------------------------------------------------------------------------------------------

FUNCTION Interval2HHMI(iVonDate DATE DEFAULT SYSDATE, iBisDate IN DATE DEFAULT SYSDATE)
RETURN VARCHAR2
IS
vStunden PLS_INTEGER;
vMinuten PLS_INTEGER;
BEGIN
vMinuten := (iBisDate - iVonDate)*24*60;
vStunden := FLOOR(vMinuten/60);
vMinuten := vMinuten - vStunden*60;
return TO_CHAR(vStunden,'FM09')||':'||TO_CHAR(vMinuten,'FM09');
END Interval2HHMI;

-------------------------------------------------------------------------------------------

FUNCTION InduZeit2MinutenNum(iInduZeit IN VARCHAR2 DEFAULT NULL)
RETURN NUMBER
IS
vInduZeit VARCHAR2(6) := NVL(iInduZeit,'00,00');
vNumber NUMBER;
vMinu PLS_INTEGER;
BEGIN
IF vInduZeit IS NULL OR vInduZeit IN ('00,00','0,00','0',',00',',0','0,','0,0') THEN
--vNumber := 0;
vMinu := 0;
ELSE
--vNumber := 60*TO_NUMBER(vInduZeit);
vNumber := ROUND(TO_NUMBER(vInduZeit),2);
vMinu := FLOOR(vNumber);
vNumber := vNumber-vMinu;
vMinu := 60*vMinu;
IF vNumber>0 THEN
qInitInduMinu;
vMinu := vMinu + qtIndu2Minu(vNumber*100);
END IF;
END IF;
--RETURN vNumber;
RETURN vMinu;
END InduZeit2MinutenNum;
---------------------------------------------------------------------------------------

FUNCTION Minuten2InduZeitNum(iMinuten IN PLS_INTEGER DEFAULT 0, i0alsNULL BOOLEAN DEFAULT FALSE)
RETURN NUMBER
IS
vStunden PLS_INTEGER;
vMinuten PLS_INTEGER := NVL(iMinuten,0);
BEGIN
IF vMinuten=0 AND i0alsNULL THEN
RETURN NULL;
ELSE
vStunden := FLOOR(vMinuten/60);
vMinuten := vMinuten - vStunden*60;
--return TO_CHAR(vStunden,'FM99')||','||TO_CHAR((vMinuten*5)/3.0,'FM09');
--InsProto(TO_CHAR(iMinuten)||':'||TO_CHAR(vMinuten));
qInitInduMinu;
RETURN (vStunden+qtMinu2Indu(vMinuten));
END IF;
END Minuten2InduZeitNum;
--------------------------------------------------------------------------------------

FUNCTION Minuten2InduZeit(iMinuten IN PLS_INTEGER DEFAULT 0, i0alsNULL BOOLEAN DEFAULT FALSE)
RETURN VARCHAR2
IS
BEGIN
IF iMinuten=0 AND i0alsNULL THEN
RETURN NULL;
ELSE
RETURN TO_CHAR(Minuten2InduZeitNum(iMinuten,i0alsNULL),'FM90D00');
END IF;
END Minuten2InduZeit;

--------------------------------------------------------------------------------------


g/c



1 mal bearbeitet. Zuletzt am .



Thema Neugierige geschrieben von geschrieben
Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 4070 Turbo123
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1619 cc13
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1706 christian_goto
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1499 Turbo123
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1424 DanielT
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1478 cc13
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1418 DanielT
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1582 cc13
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1377 DanielT
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1455 cc13
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 1420 DanielT
Re: Uhrzeitenberechnung, rechnen und ausgeben von Variablen (PL/SQL) 2347 christian_goto


In diesem Forum dürfen nur registrierte Benutzer schreiben.
This forum powered by Phorum.