Fonction DATEDIFF dans Oracle

je dois utiliser Oracle mais la fonction DATEDIFF ne fonctionne pas dans Oracle DB.

Comment écrire le code suivant dans Oracle? J'ai vu quelques exemples d'utilisation D'INTERVAL ou de TRUNC.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
16
demandé sur Mureinik 2015-02-09 12:25:44

3 réponses

Oracle, vous pouvez simplement soustraire deux dates et obtenir la différence de jours. Notez également que contrairement à SQL Server ou MySQL, dans Oracle vous ne pouvez pas effectuer un select sans from l'article. Une façon d'éviter cela est d'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
20
répondu Mureinik 2016-10-14 07:02:17

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 manual:

https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042

4
répondu a_horse_with_no_name 2015-02-09 09:27:53

Vous pouvez simplement soustraire deux dates. Vous devez le lancer en premier, 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 voulez). Si vous souhaitez avoir en heures, il suffit de multiplier le résultat avec 24.

3
répondu Patrick Hofman 2015-02-09 09:27:46