|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 31 ![]() |
Bonjour à tous et merci par avance à ceux qui vont me lire,
Lors d'un appel à un *.sql depuis un shell unix, je passe quelques paramètres. Certains de ces paramètres sont des dates. Je les récupère dans le *.sql sous forme &1, &2, ... Le problème c'est que &1 = '200701' Et j'aimerai transformer le format de cette date en dd/mm/yyyy afin de pouvoir la comparer avec le champ d'une table oracle. Ma question donc : comment passer ma variable &1 du format yyyy/mm à dd/mm/yyyy ? J'ai tenté to_date('&1','dd//mm/yyyy) mais cela ne fonctionne pas. Si quelqu'un a une idée , je suis preneur. Merci beaucoup. |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Inscription : juillet 2003 Messages : 538 ![]() |
Si tu l'as tenté avec cette syntaxe c'est normal.
Deuxiemement tu lui dis de lire une date qui est au format "dd/mm/yyyy" ce qui n'est pas vrai ... Tu n'as juste qu'a faire : et là tu obtiendras un objet de type date. Le champ avec le lequel tu veux le comparer est de type date ? tu peux faire la comparaison avec ca ! Si non, si c'est une chaine , récupere et formate ta chaine : Code :
to_char(to_date('&1','yyyymm'),'dd/mm/yyyy')
__________________
C'est pas parce que ca marche que c'est bon!! Pensez au bouton "Résolu" Je ne réponds pas en privé aux questions |
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 495 ![]() |
ta variable &1 contient 6 caractères sans slash, donc dans ton to_date, tu dois spécifier dans l'ordre à quoi correspondent ces 6 caractères (DD, MM ou YY car à priori ton année est sur 2 car.), et donc sans slash.
Par exemple : DDMMYY signifie dans ton cas qu'il doit comprendre 20 juillet 2001, alors DDYYMM signifie 20 janvier 2007. Sinon, tu peux aussi envisager de faire un to_char sur la colonne à comparer de ta table Oracle, en respectant évidemment le format de ta variable &1
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche ! |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 31 ![]() |
miloux32,
Le champ avec lequel je veux comparer est en effet de type date dd/mm/yyyy ! |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 31 ![]() |
La comparaison ne semble pas fonctionner.
Lorsqu'il compare du 'yyyymm' avec du 'dd/mm/yyyy', cela va matcher même si l'information concernant le 'dd' est absente ?? |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 8 ![]() |
to_date('&1','yyyymm') renvoie une date au 01/MM/YYYY
La comparaison entre ce to_date et ton champ DATE doit en tenir compte. Si toutes tes DATE ne correspondent pas au premier jour du mois tu n'auras que trés peu de résultat. Quel est le format de &1 ? Quel test souhaite-tu faire entre &1 et tes champs DATE ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com