oracle to_date函数。面具需要
题
我有这样类型的XML文件的日期字符串:'2010-09-09T22:33:44.oz'
我只需要提取日期和时间。我想忽略符号t和.oz(时区)。我应该使用哪个口罩?提前致谢
解决方案
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
其他提示
如果需要时区信息:
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
但 OZ
不是公认的时区缩写,因此您需要对此进行一些预先转换。
如果您只想忽略该部分,并且已修复,则可以做@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
如果您想忽略它,但没有修复,那么您需要首先将其修剪,例如(在这里使用绑定变量为简洁):
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
不隶属于 StackOverflow