encore un pb de date!! - SQL/NoSQL - Programmation
Marsh Posté le 10-06-2008 à 15:56:13
c'est parce sous oracle que le type DATE comporte également l'heure à la seconde près
fais un
Code :
|
et tu comprendras
Marsh Posté le 10-06-2008 à 17:24:36
d'accord, mais comment peut on contourner le pb?
et pourquoi en apparence mes dates sont au format "05-JUN-08"?
Marsh Posté le 10-06-2008 à 17:39:16
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
Marsh Posté le 11-06-2008 à 15:26:38
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 !
Marsh Posté le 11-06-2008 à 16:51:52
c'est quoi que tu veux faire exactement, je ne comprends pas tout
Marsh Posté le 11-06-2008 à 17:18:59
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!
Marsh Posté le 11-06-2008 à 17:29:50
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 :
|
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
Marsh Posté le 12-06-2008 à 10:24:55
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 ++
Marsh Posté le 10-06-2008 à 15:30:22
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