Mam ciąg daty z pliku xml tego rodzaju: '2010-09-09T22: 33: 44.OZ'Funkcja Oracle to_date. Potrzebna maska
Muszę wyodrębnić tylko datę i godzinę. Chcę zignorować symbol T i .OZ (strefa czasowa). Jaką maskę powinienem użyć? Dzięki z góry
Mam ciąg daty z pliku xml tego rodzaju: '2010-09-09T22: 33: 44.OZ'Funkcja Oracle to_date. Potrzebna maska
Muszę wyodrębnić tylko datę i godzinę. Chcę zignorować symbol T i .OZ (strefa czasowa). Jaką maskę powinienem użyć? Dzięki z góry
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
Jeśli informacja czasowa jest potrzebne:
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
Ale OZ
nie jest uznanym skrót stref czasowych, więc trzeba by zrobić jakąś wstępną konwersję że do czegoś, jest.
Jeśli chcesz po prostu zignorować tę część, i to stałe, można robić co @Jeffrey Kemp powiedział:
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
Jeśli chcesz go ignorować, ale to nie jest ustalona, a następnie będziesz musiał przyciąć ją pierwszy, coś jak (przy użyciu zmiennej powiązania tutaj dla uproszczenia):
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
OZ oznacza Ortszeit, który jest niemiecki dla lokalnego Ti mnie. – APC
Oh, OK, więc domyślam się, że część strefy czasowej może być zignorowana. W takim przypadku odpowiedź @ Jeffreya jest bardziej zwięzła. –
dziękuję za odpowiedź –
możliwy duplikat [Konwersja daty XSD xs: dATETIME do Oracle Data] (http://stackoverflow.com/questions/3549068/converting-a-xsd-date-xsdatetime-to-an-oracle-date) – APC