TO_DATE mais avec un affichage en "/"

TO_DATE mais avec un affichage en "/" - SQL/NoSQL - Programmation

Marsh Posté le 01-12-2008 à 13:29:51    

Bonjour tout le monde,
j'interroge ma base de données pour avoir la valeur d'un champ (date) de type number.
 
la commande que j'utilise est la suivante:
 
SQL> select TO_DATE('01-JAN-1970','DD-MON-YYYY')+DT/86400, DT from object where NBR='6070';
 
TO_DATE('   DT
--------- ----------
04-SEP-08 1220539592
 
le problème c'est que le format 04-SEP-08 ne m'arrange pas.  
je souhaite afficher la date sous le format suivant: 04/09/2008
 
Comment je dois faire? ça a un rapport avec la syntaxe de la commande to_date, mais que dois-je changer?
 
Merci d'avance.

Reply

Marsh Posté le 01-12-2008 à 13:29:51   

Reply

Marsh Posté le 01-12-2008 à 13:45:54    

Avec quelle type de base de données ?
 
Essayer :

select TO_CHAR(TO_DATE('01-JAN-1970','DD-MOM-YYYY')+DT/86400, 'DD-MM-YYYY'), DT from object where NBR='6070';

Message cité 1 fois
Message édité par olivthill le 01-12-2008 à 13:46:46
Reply

Marsh Posté le 01-12-2008 à 13:54:34    

essaye 'DD/MM/YYYY' comme format de date
=>

Code :
  1. select TO_DATE('01/01/1970','DD/MM/YYYY')+DT/86400, DT from object where NBR='6070';


 
si ça persiste regarde le format de date de ta session (ex: nls_date_format sous oracle) et modifie-le :

Code :
  1. set nls_date_format = 'DD/MM/YYYY'


Et exécute ensuite ta requête.
Attention : je ne garantis pas que ce code fonctionne sur autre chose qu'oracle ...


---------------
By bob.
Reply

Marsh Posté le 01-12-2008 à 15:01:14    

olivthill a écrit :

Avec quelle type de base de données ?
 
Essayer :

select TO_CHAR(TO_DATE('01-JAN-1970','DD-MOM-YYYY')+DT/86400, 'DD-MM-YYYY'), DT from object where NBR='6070';



 
j'essaie ta proposition, mais ca me retourne une erreur:

ERROR at line 1:
ORA-01821: date format not recognized

Reply

Marsh Posté le 01-12-2008 à 15:10:23    

superbob56 a écrit :

essaye 'DD/MM/YYYY' comme format de date
=>

Code :
  1. select TO_DATE('01/01/1970','DD/MM/YYYY')+DT/86400, DT from object where NBR='6070';


 
si ça persiste regarde le format de date de ta session (ex: nls_date_format sous oracle) et modifie-le :

Code :
  1. set nls_date_format = 'DD/MM/YYYY'


Et exécute ensuite ta requête.
Attention : je ne garantis pas que ce code fonctionne sur autre chose qu'oracle ...


 
g déja essayé de tester le format:'DD/MM/YYYY' mais ca ne change rien, il m'affiche pas le résultat souhaité...
 
pour le paramètre nls_date_format , ou est ce que je peux le trouver?

Reply

Marsh Posté le 01-12-2008 à 15:11:10    

Oups, par erreur, j'ai écris MOM au lieu de MON. Faire :

select TO_CHAR(TO_DATE('01-JAN-1970','DD-MON-YYYY')+DT/86400, 'DD/MM/YYYY'), DT from object where NBR='6070';


 
 

Reply

Marsh Posté le 01-12-2008 à 15:19:45    

olivthill a écrit :

Oups, par erreur, j'ai écris MOM au lieu de MON. Faire :

select TO_CHAR(TO_DATE('01-JAN-1970','DD-MON-YYYY')+DT/86400, 'DD/MM/YYYY'), DT from object where NBR='6070';


 
 


 
ca change rien :(
 
TO_CHAR(TO      DT
----------     ----------
04-09-2008    1220539592
 

Reply

Marsh Posté le 01-12-2008 à 15:26:05    

Ca change rien ? Tu rigole ?
D'après ce que tu dis, ça passe de 04-SEP-08 à 04-09-2008. Si ça, c'est pas du progrès ! :o
 
D'ailleurs, copie-colle voir la commande que tu tapes ? Parce qu'il n'y a pas de raison que les slash soit remplacé par des tirets.
 
NB: je ne connais pas Oracle. Si ça se trouve, il y a une raison :P


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 01-12-2008 à 15:31:15    

stmasnam a écrit :

 

ca change rien :(

 

TO_CHAR(TO      DT
----------     ----------
04-09-2008    1220539592

 


 

pas possible, t'as pas tapé sa requête si tu obtiens ça. Lis la doc de to_char.


Message édité par skeye le 01-12-2008 à 15:31:28

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-12-2008 à 15:31:34    

utilisation de TO_CHAR : http://www.ss64.com/orasyntax/to_char.html
et l'autre solution de stmasnam marche également :

Code :
  1. alter session set NLS_DATE_FORMAT='DD/MM/YYYY';

Reply

Marsh Posté le 01-12-2008 à 15:31:34   

Reply

Marsh Posté le 01-12-2008 à 15:36:17    

select TO_CHAR(TO_DATE('01-01-1970','DD/MM/YYYY')+DT/86400, 'DD/MM/YYYY'), DT from object where NBR='6070';
 
voilà, j'ai essayé ça, et c parfait.
Merci à tous.

Reply

Marsh Posté le 01-12-2008 à 15:41:02    

kao98 a écrit :


 
ca change rien :(
 
TO_CHAR(TO      DT
----------     ----------
04-09-2008    1220539592
 


 
[/quotemsg]
 

kao98 a écrit :


 :heink: Ho le boulet ! O.o


 
Oui , dans la proposition de olivthill il fallait mettre des"/" même avant ...select TO_CHAR(TO_DATE('01-JAN-1970','DD-MON-YYYY')+DT/86400, 'DD/MM/YYYY'), DT from object where NBR='6070';
 

Reply

Marsh Posté le 01-12-2008 à 15:42:34    

Mais, tu comprends ce que tu fais ? Tu comprends la fonction to_date ? Et to_char ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 01-12-2008 à 15:48:36    

kao98 a écrit :

Mais, tu comprends ce que tu fais ? Tu comprends la fonction to_date ? Et to_char ?


D'aprés ce que j'ai compris, to_date c pour la conversion en format date "normal". et la fonction to_char c elle qui nous permet de préciser le format sous lequel on voudrait que la date soit affichée.

Reply

Marsh Posté le 01-12-2008 à 15:49:51    

stmasnam a écrit :


D'aprés ce que j'ai compris, to_date c pour la conversion en format date "normal".


 
perdu.
 

stmasnam a écrit :

et la fonction to_char c elle qui nous permet de préciser le format sous lequel on voudrait que la date soit affichée.


encore perdu.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-12-2008 à 15:52:26    

alors merci de me corriger...

Reply

Marsh Posté le 01-12-2008 à 15:54:13    

stmasnam a écrit :

alors merci de me corriger...


lis la doc.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-12-2008 à 15:55:56    

je le ferais
merci

Reply

Marsh Posté le 01-12-2008 à 15:58:57    

stmasnam a écrit :

je le ferais
merci


:o


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 01-12-2008 à 16:03:47    

Reply

Marsh Posté le 01-12-2008 à 19:42:13    

on est pas sorti de l'auberge.  
Pourtant, le nom de ces deux fonctions est pourtant très explicite.
 
TO_CHAR => conversion en type chaîne de caractères
TO_DATE => conversion en type date
TO_NUMBER = > conversion en type numérique
 
c'est pourtant pas compliqué ;-)


Message édité par moi23372 le 01-12-2008 à 19:42:36

---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed