Comment calculer la différence entre deux dates dans oracle 11g SQL
Quand je suis en train de calculer la date de différence en utilisant la fonction datediff il en montrant que l'identifiant invalide.
SELECT DATEDIFF(day,'2008-08-05','2008-06-05') AS DiffDate from da_static_trade.
Error : invalid identifier.
Pouvez-vous svp me dire quelle est la fonction pour calculer la date de différence.
OriginalL'auteur Santhosh Kancherla | 2014-09-02
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de
DATEDIFF()
fonction dans Oracle. Sur l'Oracle, c'est un problème arithmétiqueAlors, comment peut-on obtenir les heures ou les minutes entre deux dates, et pas seulement d'un nombre décimal?
OriginalL'auteur Mikhail Timofeev
Oracle support Mathématique Soustraction
-
opérateur sur des Données type de données. Vous pouvez placer directement dans la clause select déclaration suivante:Vérifier la EXEMPLE pour plus de visibilité.
Dans le cas où vous avez besoin de la sortie en termes d'heures, puis le ci-dessous peut aider;
OriginalL'auteur Nadeem_MK
Vous ne pouvez pas utiliser
DATEDIFF
mais vous pouvez l'utiliser (si les colonnes ne sont pas de type date):
vous pouvez voir l'exemple de
http://sqlfiddle.com/#!4/d41d8/34609
OriginalL'auteur Ersin Gülbahar
Vous pouvez utiliser ceci:
OriginalL'auteur Davy Machado
fondamentalement la to_char(sysdate,'DDD') retourne pas de jours à partir de 1-jan-aaaa pour sysdate
de sorte que si soustraire deux dates, il sera de retour,vous obtiendrez la différence entre deux dates
select to_char(sysdate,'DDD') -to_char(to_date('19-08-1995','dd-mm-yyyy'),'DDD') from dual;
OriginalL'auteur sandeep veeramalla
Oracle DateDiff est à partir d'un autre produit, probablement mysql (qui est maintenant détenue par Oracle).
La différence entre deux dates (dans oracle habituelle du produit de base de données) est en jours (qui peut avoir des parties fractionnaires). Facteur par 24 pour obtenir des heures, 24*60 pour obtenir des minutes, 24*60*60 pour obtenir de secondes (c'est comme les petits comme les dates aller). Le calcul est précis à 100% pour les dates au sein d'un couple de centaines d'années.
E. g. pour obtenir la date d'une seconde avant minuit aujourd'hui, on pourrait dire
select trunc(sysdate) - 1/24/60/60 from dual;
Qui signifie "le temps maintenant", tronqué à être juste la date (c'est à dire minuit qui s'est produite ce matin). Puis il soustrait un nombre qui est la fraction de 1 jour que des mesures d'une seconde. Qui vous donne la date de la journée précédente avec le composant de 23:59:59.
OriginalL'auteur Malcolm