2017-06-12 1 views
1

J'ai extrait la date d'un fichier EXCEL qui est 42885.4253360301 et la date au format Excel est DD-MON-RR HH:MI:SS UTC. Je souhaite convertir la valeur décimale en datetime à l'aide de la fonction oracle. Comment procéder?Comment faire pour convertir la date d'extraction en décimal en Datetime en oracle

+0

Cette «valeur décimale», est-ce un nombre de jours, heures, minutes ou secondes ou peut-être quelque chose d'autre? –

+0

Ne sais pas. J'ai extrait la date du fichier EXCEL en utilisant l'outil envahissant et ai obtenu cette valeur décimale. –

Répondre

5

Je ne sais pas vraiment ce qui est le point de départ pour le calcul de la date d'Oracle avec des valeurs décimales, mais si vous prenez quelque chose comme:

select to_date('01/01/1900', 'dd/mm/yyyy')+42885.4253360301 as my_date from dual; 

votre résultat est

MY_DATE   
------------------- 
01/06/2017 10:12:29 

qui signifie que vous Vous pouvez appliquer une simple opération de date à votre valeur Excel en l'ajoutant à un point de départ. quel point de départ? Je ne peux pas vraiment le dire, mais j'espère que cela peut servir d'indice.

+1

travaillant en arrière, j'ai branché sa valeur décimale dans Excel et converti en date pour comprendre quelle date il a réellement commencé avec: 30 mai 2017 10:12:29. Mettre cela dans Oracle et soustraire 42885.4253360301 donne: 30-dec-1899 00:00:00 de sorte que vous êtes sur la bonne idée, cependant, je suppose que vous devez utiliser Dec 30, 1899 comme votre date de base, (pas Jan 1, 1900) et puis ajouter à cela ..;) mais oui, probablement le moyen le plus facile que je connais aussi bien. – Ditto

+1

Merci @Ditto pour compléter la réponse, voyons si cela peut aider Tanmay. –

+2

Vous êtes exactement sur la bonne voie. Excel commence effectivement le 1er janvier 1900. Cependant, Microsoft a fait une erreur dès le début, et je crois qu'ils ont décidé de ne jamais y remédier, afin que l'ancien code ne se casse pas. A savoir, ils ont traité 1900 comme une année bissextile (!!!!!) qui provoque maintenant tous ces problèmes. Vous pouvez tester cela très facilement dans Excel (vu que la date après 28/02/1900 est, choquante, 29/2/1900, même si 1900 n'était pas une année bissextile). – mathguy