Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1299 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  encore un pb de date!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

encore un pb de date!!

n°1744255
soweto93
Posté le 10-06-2008 à 15:30:22  profilanswer
 

bonjour, j'ai encore un pb de date et je commence à tourner en rond.
dans ma base, j'ai une colonne de type date de format --> 05-JUN-08    (5 juin 2008 et j'ai fait un sysdate pour la remplir)
 
je dois faire un test sur cette date et pour cela je voudrai soustraire 5 jour de cette date
du genre SELECT.. FROM.. WHERE ..  AND (maTable.datej =  (SYSDATE - 5) ;  pb, ça ne me renvoie rien..
Quelqu'un aurait il une idée?
merci d'avance

mood
Publicité
Posté le 10-06-2008 à 15:30:22  profilanswer
 

n°1744265
soweto93
Posté le 10-06-2008 à 15:41:53  profilanswer
 

j'ai oublié de préciser qu'il s'agissait d'un oracle..

n°1744276
couak
Posté le 10-06-2008 à 15:56:13  profilanswer
 

c'est parce sous oracle que le type DATE comporte également l'heure à la seconde près
fais un

Code :
  1. SELECT TO_CHAR(datej, 'DD/MM/YYYY HH:24:MI:SS') FROM taTable

et tu comprendras


Message édité par couak le 10-06-2008 à 15:59:21
n°1744336
soweto93
Posté le 10-06-2008 à 17:24:36  profilanswer
 

d'accord, mais comment peut on contourner le pb?
et pourquoi en apparence mes dates sont au format "05-JUN-08"?

n°1744349
couak
Posté le 10-06-2008 à 17:39:16  profilanswer
 

soweto93 a écrit :

d'accord, mais comment peut on contourner le pb?


bah essaie de chercher un peu, c'est pas trop compliqué, tu peux utiliser TO_CHAR ou bien encore BETWEEN
 

soweto93 a écrit :

et pourquoi en apparence mes dates sont au format "05-JUN-08"?

parce que si ta variable d'environnement ou de session NLS_DATE_FORMAT n'est pas définie, par défaut tu auras 'DD/MON/RR'
Si tu n'aimes pas tu peux mettre à 'DD/MM/RRRR HH:24:MI:SS'
La doc oracle est assez complète

n°1744863
soweto93
Posté le 11-06-2008 à 15:26:38  profilanswer
 

select to_date(sysdate,'DD-MM-YY') - to_date(datej,'DD-MM-YY') from ctrl_event
 
me renvoie des jours entiers, je vais me débrouiller avec ça!
merci !

n°1744881
casimimir
Posté le 11-06-2008 à 15:50:09  profilanswer
 

sinon y a trunc() qui est fait pour ca

n°1744934
couak
Posté le 11-06-2008 à 16:51:52  profilanswer
 

c'est quoi que tu veux faire exactement, je ne comprends pas tout

n°1744958
soweto93
Posté le 11-06-2008 à 17:18:59  profilanswer
 

en gros j'ai une date dans ma table, et je veux dans une clause "where" rajouter le test suivant --> where maDate= sysdate -  1
 
Je vais aller voir si le trunc() peut m'aider..
 
merci pour votre aide!

n°1744964
couak
Posté le 11-06-2008 à 17:29:50  profilanswer
 

et donc tu veux faire une comparaison avec une précision "JOUR" et pas à la seconde comme le type DATE te le permet
Donc tu as plusieurs solutions et je t'avais donnée comme piste TO_CHAR et BETWEEN
Version TO_CHAR :

Code :
  1. select * from maTable where to_char(datej, 'DD/MM/YYYY')=to_char(sysdate-1, 'DD/MM/YYYY')


Après je ne pense pas que cela soit optimal car ca passe par 2 conversions en chaines de caractères avant de faire une comparaison
 
Tu peux chercher un peu pour la solution BETWEEN qui est sympa à connaître

mood
Publicité
Posté le 11-06-2008 à 17:29:50  profilanswer
 

n°1745318
soweto93
Posté le 12-06-2008 à 10:24:55  profilanswer
 

c'est bon , j'ai résolu mon pb. en fait je n'avais pas compris qu'on pouvais choisir le format de la date à l'extraction de celle ci de la table.
 
to_date(sysdate,'DD-MM-YY') - to_date(datej,'DD-MM-YY') me renvoie bien le nombre de jour qui sépare ces 2 dates. par contre couak a raison, c'est pas optimal comme solution mais ça fonctionne.  
 
j'ai creusé pour le between mais sans succés. j'ai vu qu'il y existait un between_month...  
 
le trunc() aurait pu me servir en deuxieme recours, car il m'aurait renvoyé 5 au lieu de 5.425684556.
 
merci à vous en tous cas, le tout étant d'avoir le choix dans la date !
 
bye ++
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  encore un pb de date!!

 

Sujets relatifs
inserer champs date dans une formulaire jspinserer champs date dans une formulaire jsp
Comment encoder une date sans les tirets?Regexp de date et email
Problème de format de date SQL[ bash ] date de dernière d'un fichier
Problème fonction date à devenir fouFormat date US-FR
MySQL : attribuer date à chaque enregistrementcomment fonctionne la fonction date ?
Plus de sujets relatifs à : encore un pb de date!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR