Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2007, 15h33   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Par défaut calcul entre une zone en char et sysdate

Bonjour,
Je suis sur AIX en version 9.2.0.5 d'Oracle et je voudrais rechercher les lignes d'une table dont la zone horadate - sysdate > 15.

horodate est en char(16)

J'ai essayé TO_NUMBER(horadate) - to_char(sysdate)
j'obtiens ora-1722 invalid number sur l'expression to_char

J'ai aussi essayé TO_NUMBER(horadate) - to_number(sysdate)
la mème erreur mais sur sysdate

Merci pour votre aide
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 15h43   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Regarde bien la doc sur les dates. faut toujours un format
http://sheikyerbouti.developpez.com/...age=Chap3#L3.4
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 15h43   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Code :
to_date(horodate, '<le format qui va bien>') - sysdate
Pourquoi chercher à convertir en char ou number alors que ce sont 2 dates ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 16h09   #4
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Je suis désolé, mais je débute.
En suivant, surement mal vos conseils j'obtiens ce résultat
select * from table where ((to_date(horodate, 'DD/MM/YYYY HH24:MI') - sysdate) > 15)
*
ERROR at line 1:
ORA-01861: literal does not match format string
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 16h27   #5
Membre du Club
 
Inscription : septembre 2006
Messages : 87
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 87
Points : 46
Points : 46
bonjour,
ton erreur signifie que le format de horodate ne correspond pas au format DD/MM/YYYY HH24:MI.
si tu met to_date(horodate, 'DD/MM/YYYY HH24:MI') , cela veut dire que tu doit avoir horodate comme ceci par exemple: '25/12/2006 23:59'.
vérifie que horodate a ce format ci
AEMAG
aemag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 17h32   #6
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Finalement j'arrive au résultat ainsi
where (to_char(sysdate, 'YYYYMMDD') - substr(horodatage,1,8) > 15);

Merci pour votre aide
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h07.


 
 
 
 
Partenaires

Hébergement Web