database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 8626 게시물 읽기
No. 8626
date 형식은 global 한것인가요?
작성자
성제호(s_jeho)
작성일
2010-02-24 23:42ⓒ
2010-02-25 01:19ⓜ
조회수
8,742

 

csv 의 값을 읽어오는 도중, date 의 형태가 틀리다며 오류가 발생했습니다.

알아보니 postgres.conf 의 datetype 이 ymd 로 되어있지만, 제가 가진 자료의 값은 mdy(Month, Day, Year) 로 되어있더군요

그래서 결국 postgres.conf 의 datetype 을 mdy 로 수정하여 csv값을 읽어오는데는 성공했습니다만,

문제는 DB에 등록되어 표시되는 값의 형태가 ymd 의 형태로 나오게 되더군요,

 

질문1) DB에 등록되어 표시되는 값의 형태가 ymd 이지만, 필요한 형태는 mdy 입니다, select 할때 옵션상으로 선택해야하는것인지요, 컨피그를 수정해야하는것인지요?

 

질문2) 앞서말씀드렸듯이 특정 csv 의 값이 mdy 의 형태를 가지고 있어 postgres.conf 의 datetype 값을 mdy 로 변경하였습니다. 그러나 이게 postgres.conf 값을 변경하는거라 global 하게 영향을 미칠것같은데, 만약 다른 DB에서 ymd 의 값을 읽어올일이 발생하면 어떻게 조치해야할까요?

 

감사합니다...^^

 

 

 

 

제가 참고한 자료를 다른분들도 보시라고 자세히 기록합니다*

 

YMD 는 year-month-date 의 순으로 불립니다,

http://www.postgresql.org/docs/8.4/static/datatype-datetime.html 에서 Table 8-15. Date Order Conventions 부분을 참고하시면, input ordering 이라는 부분에 입력순서에 해당하는 부분이 있습니다.

Pgadmin III 에서 파일 메뉴에 "postgres.conf 를 연다" 부분을 열어 설정파일을 열면, datestyle 이란 부분에 변경할수있는 부분이 있습니다. 아마 sql, ymd 라고 되어있을것입니다.

 

스샷으로 올리면 편한것인데 스샷이 등록이 안되네요, 죄송합니다~

이 글에 대한 댓글이 총 2건 있습니다.

 

방법을 하나 찾았습니다,

각 데이터베이스와 사용자별로 datestyle 을 변경할수 있다고 하는군요,

http://archives.postgresql.org/pgsql-novice/2003-04/msg00139.php

 

 

selelct 할때 string 으로 변경해서 출력해주는 방법이 있는데(메뉴얼에서 찾았습니다)

select to_char(날짜컬럼, 'MM-DD-YYYY') from 날짜테이블;

그러나 이방식을 뷰에 넣어보려고 했는데, to_char 를 쓰는 컬럼이 두개이상 넘어가면

같은 항목으로 인식해버려 입력이 안되더군요(버그인가, 잘못쓴것인가 모르겠습니다)

 

 

성제호(s_jeho)님이 2010-02-25 00:46에 작성한 댓글입니다.

안녕하세요,

 

애플리케이션에서 고정된 형식의 날짜 형식을 얻으시려고  to_char로 변형해서 가져오는 방법을 쓰신 것 같습니다. 네, 보통 이렇게 포맷팅을 해서 쓰는 경우가 많습니다. 그런데 제가 마지막 뷰를 만드는 부분에 문제가 있다는 것에 대해 이해를 제대로 했는지 모르겠네요. 컬럼 Alias 를 안쓰셔서 문제가 있는 것 아닐까 추측해봅니다.

 

# select to_char(ts, 'MM-DD-YYYY') from tbl1;
  to_char
------------
 02-25-2010
(1 row)

# select to_char(ts, 'MM-DD-YYYY'), to_char(ts, 'YYYY/MM/DD')  from tbl1;
  to_char   |  to_char
------------+------------
 02-25-2010 | 2010/02/25
(1 row)

# create view view1 as select to_char(ts, 'MM-DD-YYYY'), to_char(ts, 'YYYY/MM/DD')  from tbl1;
ERROR:  column "to_char" specified more than once


# create view view1 as select to_char(ts, 'MM-DD-YYYY') as ts1, to_char(ts, 'YYYY/MM/DD') as ts2  from tbl1;
CREATE VIEW


# select * from view1;
    ts1     |    ts2
------------+------------
 02-25-2010 | 2010/02/25
(1 row)

#
 

김영우님이 2010-02-25 14:27에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
8629DB 백업, 복원 방법 문의입니다.
어그루
2010-03-02
7931
8628외부 파일을 Copy문을 이용해서 PostgreSQL 서버에 입력 가능하게 하려면?? [1]
설동임
2010-02-25
8351
8627ecpg 가 이상해서요.
손광락
2010-02-25
7431
8626date 형식은 global 한것인가요? [2]
성제호
2010-02-24
8742
8624쿼리속도 비교 [2]
황수현
2010-02-19
9203
8623Vacuum에서 full 사용 관련하여 문의 드립니다. [4]
박병훈
2010-02-18
10074
8622칼럼 형 변환. [4]
슝슝이
2010-02-17
8240
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다