Je dois utiliser Oracle mais la fonction DATEDIFF ne fonctionne pas dans Oracle DB.
Comment écrire le code suivant dans Oracle? J'ai vu des exemples en utilisant INTERVAL ou TRUNC.
SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
Dans Oracle, vous pouvez simplement soustraire deux dates et obtenir la différence en days. Notez également que contrairement à SQL Server ou MySQL, dans Oracle, vous ne pouvez pas exécuter d'instruction select
sans une clause from
. Une solution consiste à utiliser la table factice intégrée, dual
:
SELECT TO_DATE('2000-01-02', 'YYYY-MM-DD') -
TO_DATE('2000-01-01', 'YYYY-MM-DD') AS DateDiff
FROM dual
Il suffit de soustraire les deux dates:
select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;
Le résultat sera la différence en jours.
Plus de détails sont dans le manuel:
https://docs.Oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042
Vous pouvez simplement soustraire deux dates. Vous devez d'abord le lancer, en utilisant to_date
:
select to_date('2000-01-01', 'yyyy-MM-dd')
- to_date('2000-01-02', 'yyyy-MM-dd')
datediff
from dual
;
Le résultat est en jours, à la différence de ces deux dates est -1
(vous pouvez échanger les deux dates si vous le souhaitez). Si vous aimez l'avoir en heures, il vous suffit de multiplier le résultat par 24.