Question

Je chaîne de la date à partir du fichier xml de ce genre: '2010-09-09T22: 33: 44.OZ'

Je dois extraire uniquement la date et l'heure. Je veux ignorer le symbole T et .OZ (fuseau horaire). Ce qui masque que je devrais utiliser? Merci à l'avance

Était-ce utile?

La solution

select TO_DATE('2010-09-09T22:33:44.OZ'
              ,'YYYY-MM-DD"T"HH24:MI:SS".OZ"')
from dual;

9/09/2010 10:33:44 PM

Autres conseils

Si les informations de fuseau horaire est nécessaire:

select to_timestamp_tz('2010-09-09T22:33:44.GMT','YYYY-MM-DD"T"HH24:MI:SS.TZR')
from dual;

09-SEP-10 22.33.44.000000000 GMT

Mais OZ n'est pas une abréviation de fuseau horaire reconnu, de sorte que vous aurez besoin de faire un peu avant la conversion de ce à quelque chose qui est.

Si vous voulez simplement ignorer cette partie, et il est fixe, vous pouvez faire ce que @Jeffrey Kemp a dit:

select to_date('2010-09-09T22:33:44.OZ','YYYY-MM-DD"T"HH24:MI:SS."OZ"')
from dual;

09/09/2010 22:33:44 -- assuming your NLS_DATE_FORMAT is DD/MM/YYYY HH24:MI:SS

Si vous voulez l'ignorer, mais il est pas fixe alors vous aurez besoin de le couper en premier, quelque chose comme (en utilisant une variable de liaison ici par souci de concision):

var input varchar2(32);
exec :input := '2010-09-09T22:33:44.OZ';
select to_date(substr(:input,1,instr(:input,'.') - 1),'YYYY-MM-DD"T"HH24:MI:SS')
from dual;

09/09/2010 22:33:44
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top