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;
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
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
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.