2016-06-09 3 views
-2

모든 날짜를 select * from table에서 포맷하고 싶습니다. 그러나 표의 열을 모릅니다. 결과를 반환 할 때 데이터 형식 DATE 모든 열을 특정 형식으로 서식을 싶습니다.형식 날짜 선택 * perl

저는 Oracle 및 perl 스크립트 작업을하고 있습니다. 사전에

감사

답변

3

당신은 할 수 :

alter session set nls_date_format = '<your date format>'; 

예를 들면 : 당신이 (시간 부분을 제외 할 경우 예를 들어, 그것의 일부 열에 대한 무관하다는 마음에

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

select sysdate from dual; 

SYSDATE    
--------------------- 
09/06/2016 09:33:38 

곰 자정으로 설정 한 경우) 시간 부분이있는 열의 결과는 오도 된 것입니다. 예 :

alter session set nls_date_format = 'dd/mm/yyyy'; 

select sysdate from dual; 

SYSDATE 
---------- 
09/06/2016 

왜 어떤 열을 처리했는지 알 수없는 이유는 다소 혼란 스럽습니다. 데이터베이스를보고 그 정보를 얻는 것이 그리 어렵지 않습니다.

+0

음, 장의 필드가 미래에 바뀔 수 있기 때문에 그것이 '선택 *'을 사용하는 이유입니다. 나는 제안 된 답을 시험 할 것이다. 감사합니다. – ilde

+3

일반적으로 프로덕션 코드의'select *'는 좋지 않습니다. 스크립트의 용도를 밝히지 않았으므로'select * '를 사용하는 것이 의미가있을 수도 있고 그렇지 않을 수도 있습니다. 스크립트 작성의 게으름은 IMHO가 아닙니다. 좋은 이유가 아닙니다. (내가 여기서 말하는 것은 아닙니다. 그걸 결정할 수있는 정보가 충분하지 않습니다!). 테이블의 구조가 미래에 바뀌면 스크립트도 그에 따라 변경되어야합니다. 결국 응용 프로그램 프로세스 (예 :보고)의 일부인 경우 나머지 응용 프로그램 코드와 비슷한 방식으로 처리해야합니다. – Boneist

+0

글쎄, 데이터베이스 테이블의 일부 행을 다른 것으로 복사하는 도구입니다. 연속적인 프로세스가 아니며 결국 실행됩니다. 감사합니다. – ilde