2017-09-29 2 views
1

mm/dd/yyyy hh24:mi:ss 형식의 한 테이블에서 날짜를 검색했습니다. 이제 그것을 다른 테이블에 dd-mon-rr 형식으로 저장하려고합니다.Oracle에서 암시 적으로 날짜 형식 변환이 있습니까?

암시 적 변환이 발생합니까? 그렇지 않은 경우 쿼리를 제안하십시오! 사용

조회 :

select DATETOSTRING(r_date, 'mm/dd/yyyy hh24:mi:ss') as r_date from abc; 

insert into efg values(r_date); 

참고 : 데이터베이스의 현재 날짜 형식 dd-mon-rr입니다.

+0

은 https :/

INSERT INTO efg (r_date) SELECT r_date FROM abc; 

가 원하는 형식으로 날짜를 얻으려면 /stackoverflow.com/questions/7606745/how-to-change-the-date-format-from-mm-dd-yyyy-to-yyyy-mm-dd-in-pl-sql – fab

+0

'ORA-00904 : "DATETOSTRING ": 유효하지 않은 식별자 ' – MT0

+1

dat e는 날짜이므로 날짜로 저장하십시오. 날짜는 내부적으로 숫자 형식으로 처리됩니다. 그렇게하면 쉽게 계산할 수 있고, 비교하고, 정렬하고, 정렬 할 수 있습니다. 형식을 지정할 때, 대부분의 해당 기능이없는 고정 문자열이며 더 많은 공간이 필요합니다. 그래서 포맷 된 날짜를 저장하지 마십시오. 형식은 표시 전용입니다. – GolezTrol

답변

1

날짜를 특정 형식으로 저장하지 않으면 날짜는 항상 데이터베이스 내에 숫자로 저장됩니다. 표시 방법은 특정 클라이언트 매개 변수에 따라 다릅니다. exemple 들어 , 당신이 할 경우 :

alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss'; 

모든 날짜

이 형식으로 표시됩니다, 당신은 테이블에 삽입 할 경우이 형식으로 저장됩니다 날짜를 의미하지는 않습니다, 날짜가 계속 될 것 숫자.

2

날짜 (테이블에 저장 됨)는 7 bytes으로 표시되며 관련 형식이 없습니다. 문자열로 포맷 된 경우 데이터베이스에 액세스하는 데 사용하는 클라이언트 프로그램이 날짜에 자체 형식을 적용합니다 (일반적으로 해당 프로그램의 환경 설정을 통해 설정할 수 있음).

"날짜"가 형식으로 저장되어 있으면 날짜로 저장하지 않고 문자열 (예 : VARCHAR2) 형식으로 저장합니다.

DATETOSTRING은 오라클 기능이 아닙니다. TO_CHAR(datevalue, format_model, nlsparams)은 오라클 기능입니다.

mm/dd/yyyy hh24 : mi : ss 형식으로 한 테이블에서 날짜를 검색했습니다. 이제 나는 dd-mon-rr 형식으로 다른 테이블에 저장하려고합니다. 당신이 다음 DATE를 검색 할 경우

아니, 당신은 데이터베이스에서 7 바이트 있어요 - 사용자 인터페이스 (즉, SQL/플러스, SQL 개발자, 자바, 등)이 암시 적 변환을 수행 사용하는 사람들을 만들려면 사용자가 표시 할 때 이해할 수있는 7 바이트.

SQL/플러스 및 SQL 개발자는이 암시 적 변환을 수행 할 수 TO_CHAR 함수의 기본 형식 모델로 NLS_DATE_FORMAT, NLS_DATE_LANGUAGENLS_TERRITORY 세션 매개 변수와 NLS 매개 변수를 사용합니다 -하지만 이러한 사용자 별 설정하고 의존해서는 안 (특히 국제 환경에서) 여러 사용자간에 일관성을 유지해야합니다.

당신은 DATE을 저장할 그것은 NO 형식이있는 경우 - 당신이 다음 다음 원하는 형식 모델 TO_CHAR를 사용하여 문자열로 DATE에서 변환해야합니다 특정 형식으로 표시하려는 경우 .

그래서, 당신은 간단하게 사용할 수 있습니다

다른 하나 개의 테이블에서 날짜를 복사하려면 :

SELECT TO_CHAR(r_date, 'dd-mon-rr') AS r_date 
FROM efg 
+0

사실 문제는 하나의 테이블에서 테이블로 날짜를 전송하는 것이 간단하지 않습니다. 간단히 말해서 한 데이터베이스에서 검색된 r_date (주어진 날짜 형식의 문자열)를 다른 데이터베이스에 저장하고 싶습니다. dd-mon-rr 현재 형식). –

+0

@PragatiGupta ** ** ** 그렇게하지 마십시오 - 데이터베이스에 쿼리 할 때 값을'DATE '로 저장 한 다음 필요에 따라 형식을 지정하십시오. 필요하다면 형식화 된 값으로 가상 컬럼을 생성하거나, 속도를 높이기 위해 포맷 된 날짜에 함수 기반 인덱스를 추가하지만 기본 값을'DATE' 데이터 유형으로 저장하십시오. – MT0

+0

어떻게 이것을 통해 자바를 구현할 수 있습니까? SimpleDateFormat을 사용할 수 있습니까? –

관련 문제