Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 03/07/2011, 15h05   #1
Invité de passage
 
Inscription : février 2011
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 37
Points : 1
Points : 1
Par défaut Convertir date julian

Bonjour,

JD Edwards possède un date de type number(6).
Je cherche comment traduire cette date.
J'ai déja essayé avec cette fonction mais le résultat est incorrect :
Code :
1
2
3
4
5
6
7
8
var1 nchar(20); 
-- corps principal
 
BEGIN
   SELECT TO_CHAR(TO_DATE(101032,'j'),'YYYY-MON-DD','NLS_DATE_LANGUAGE = FRENCH') INTO var1
FROM DUAL;
 
    RETURN var1;
Le résultat : 4436-out-11

Merci
didafd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 00h13   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 437
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 437
Points : 4 173
Points : 4 173
Le format J correspond au jour Julien jour Julien. Soit le nombre de jour depuis 1er janvier 4713 av. J.-C

Donc ton nombre à 6 chiffres ne peut être ça.
Ton exemple correspond au 11 Août -4436
Code :
1
2
3
4
5
SELECT to_char(sysdate, 'J'), to_char(TO_DATE(101032,'J'), 'DD/MM/RRRR BC')
FROM dual;
 
TO_CHAR(SYSDATE,'J')        TO_CHAR(TO_DATE(101032,'J'),'DD/MM/RRRRBC')
2455746                    11/08/4436 AV. J.C.
J'aurais pensé que la date 101032 était comme dans certains systèmes : une référence au 01/01/1970, mais non car ça tombe en 2246.
Code :
1
2
3
4
5
SELECT sysdate, trunc(sysdate - to_date('01.01.1970', 'DD.MM.RRRR')) nbj, to_date('01.01.1970', 'DD.MM.RRRR')  + 101032 AS date_c 
FROM DUAL;
 
SYSDATE         NBJ           DATE_C                      
04/07/2011      15159        14/08/2246
alors une petite recherche sur le google donne la réponse en 5 sec : c'est le troisième lien de "JD Edward date"
JD Edwards Date Conversions (CYYDDD)
donc format C-YY-DDD

soit en sql
Code :
1
2
3
4
5
SELECT to_date('01/01/'|| (1900 + trunc(101032/1000)), 'DD/MM/RRRR') + mod(101032,1000) AS date_normale
FROM DUAL;
 
DATE_NORMALE
02/02/2001
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h16.


 
 
 
 
Partenaires

Hébergement Web