J'ai écrit cette fonction pour obtenir les minutes d'une date, mais je ne peux pas avoir des minutes entre deux dates, comment l'obtenir?
FUNCTION get_minute(p_date DATE)
RETURN NUMBER
IS
BEGIN
IF p_date IS NOT NULL THEN
return EXTRACT(MINUTE FROM TO_TIMESTAMP(to_char(p_date,'DD-MON-YYYY HH:MI:SS'),'DD-MON-YYYY HH24:MI:SS'));
ELSE
RETURN 0;
END IF;
END get_minute;
Lorsque vous soustrayez deux dates dans Oracle, vous obtenez le nombre de jours entre les deux valeurs . Il suffit donc de se multiplier pour obtenir le résultat en minutes:
SELECT (date2 - date1) * 24 * 60 AS minutesBetween
FROM ...
Pour ceux qui veulent soustraire deux horodatages (au lieu de dates), il existe une solution similaire:
SELECT ( CAST( date2 AS DATE ) - CAST( date1 AS DATE ) ) * 1440 AS minutesInBetween
FROM ...
ou
SELECT ( CAST( date2 AS DATE ) - CAST( date1 AS DATE ) ) * 86400 AS secondsInBetween
FROM ...
Je peux gérer de cette façon:
select to_number(to_char(sysdate,'MI')) - to_number(to_char(*YOUR_DATA_VALUE*,'MI')),max(exp_time) from ...
Ou Si vous voulez l'heure juste changer le MI;
select to_number(to_char(sysdate,'HH24')) - to_number(to_char(*YOUR_DATA_VALUE*,'HH24')),max(exp_time) from ...
les autres ne travaillent pas pour moi. Bonne chance.