2012-09-26 2 views
4

정확한 날짜를 가져 오는 데 문제가 있습니다. 한 테이블에서 다른 테이블로 날짜를 복사 할 때Oracle에서 1950 년 이전 날짜 입력

insert into table1 select some_date from some_table 

잘못된 날짜가 삽입됩니다. 이 문제는 1950 년 이전의 날짜에만 발생합니다. table1에서 나는 날짜가 1.1.1949이고 some_table에 복사하면 날짜가 있습니다. 2049-1-1

올바른 날짜를 얻는 방법 ... 1949-1 -1?

+3

날짜를 복사 할 때 왜 char로 변환 하시겠습니까? – beny23

+1

'RRRR' 대신'YYYY'를 사용하십시오. – Annjawn

+0

이전에는 some_date 였지만 그 후에는 차이가 있다고 생각했습니다. 나는 그것을 바로 잡을 것이다. – DiaMonD

답변

6

당신은 사용해야

to_char(some_date,'YYYY-MM-DD') 

RRRR는 같은 세기 가정, 두 자리 연도입니다. 읽기 : What is the difference between 'YYYY' and 'RRRR' in Oracle SQL

+3

[날짜 형식 모델] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm)에도 링크 할 가치가 있습니다. – beny23

+0

맞습니다. 처음에는 to_char을 사용하지 않았고 아마도 NLS_DATE_FORMAT이 DD.MM.RR로 설정되어 잘못된 연도를 삽입했기 때문일 수 있습니다. – DiaMonD

+0

@ beny23 네, 링크를 공유해 주셔서 감사합니다! –