2017-09-06 4 views
0

내 Oracle 날짜 필드에 nvarchar2 값을 삽입하려고합니다. 내 원본 nvarchar2 값이 '20701130'인 경우 Oracle oracle 열에 '30/11/2070 '으로 저장하려고합니다. 원본 값이 '21150529'인 경우 '29/05/2115 '로 저장하려고합니다.오라클 - 올바른 centuryinfo로 날짜 저장

이것을 달성하기 위해 다른 서식 지정 옵션을 시도했지만 그 해는 항상 두 자리로 저장되고 올바른 세기를 나타내지 않습니다. 내 쿼리의

하나 : 나는 위의 쿼리 후 선택하면 이제

INSERT INTO MY_TABLE (MY_DATE_FIELD) 
VALUES(TO_DATE('21061030', 'RRRR-MM-DD')); 

이, 나는 우리가 원하는되지 30/10/06과 같은 결과를 얻을, 그것이 있어야 '30/10/2106 '.

그래서, 어떤 도움을 주셔서 감사합니다.

키란.

당신은 여러 가지 방법으로 그것에 대해 갈 수
+0

이 쿼리의 결과는 다음과 같습니다.'select p.value from nls_instance_parameters p 여기서 p.PARAMETER = 'NLS_DATE_FORMAT'' -> _'DD/MM/RRRR'_ 또는 _'DD/MM/RR'_? –

답변

0

:

당신은 당신이 달성하고자하는 형식으로 세션 날짜 형식 자체를 변경 같은 :

ALTER SESSION SET NLS_DATE_FORMAT = 'RRRR-MM-DD ';

또 다른 방법은 to_date를 사용하여 전달 된 문자열에서 날짜를 얻은 다음 to_char를 다시 추가하여 원하는 형식으로 날짜를 표시하는 것입니다.

To_date는 제공된 형식을 사용하여 문자열을 날짜로 변환하지만 선택하는 동안 To_char를 사용하여 표시하려는 형식으로 변경하는 이유는 세션에서 제공된 형식대로 날짜를 계속 표시합니다. 그것으로.

to_char (TO_DATE ('21061030', 'RRRR-MM-DD'), 'RRRR-MM-DD')를 선택하십시오.

0

도움 주셔서 감사합니다.

관심있는 사람이 있으면 내 SQL을 아래에 붙여 넣었습니다.

-- To insert into table 
UPDATE MY_TABLE SET MY_DATE_FLD = TO_CHAR(TO_DATE('21061030', 'RRRR-MM-DD'),'DD-MM-YYYY') ; 

-- To read from the table, this gave me the result 30/01/2106 
select TO_CHAR(DATE_FLD,'DD/MM/YYY') AS START_DATE from MY_TABLE; 

감사합니다. 키란.