to_date función de Oracle. Máscara necesaria
Pregunta
Tengo cadena de fecha del archivo XML de este tipo: '2010-09-09T22: 33: 44.OZ'
necesito extraer sólo la fecha y la hora. Quiero ignorar símbolo T y .OZ (zona horaria). Que la máscara que debo usar? Gracias de antemano
Solución
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
Otros consejos
Si es necesaria la información de zona horaria:
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
Pero OZ
no es una zona horaria reconocida abreviatura, por lo que tenía que hacer algunos pre-conversión de ese algo que es.
Si quiere simplemente ignorar esa parte, y es fijo, sólo puede hacer lo que dijo @Jeffrey Kemp:
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 desea ignorarlo pero no es fijo, entonces tendrá que recortar si fuera la primera, algo así como (usando una variable de enlace aquí por razones de brevedad):
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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow