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 4595 게시물 읽기
No. 4595
날짜관련 변환 ??
작성자
미투
작성일
2003-02-25 14:45
조회수
3,779

PostgreSql에서 자료를 덤프 받아서 mysql에 db와 table을 만들고

데이타를 삽입했습니다.

 

근데 한가지 문제점이..ㅡㅡ

 

다름이 아니라.. php에서..time()하면.. 10자리의 숫자로 날짜가 됩니다.

이걸 date('Y-m-d', time())하면.. 2003-01-01이런식으로 날짜가

나오져..

 

근데.. 덤프한 PostgreSql에서도.. 이런식으로 날짜를 숫자로 바꿔서

집어 넣은거 같은데...(제가 만들기 전..ㅡㅡ)

 

해당 테이블에서 reg_date를 보니깐 1003137188235게 나오고,

웹상에서는 2001/10/15일로 나오네요..

 

해서 php코드로 date('Y-m-d', $reg_date) 를 하니깐

2001-10-15가 나오지 않고.. 2038-01-01 식으로 나오네요..

 

어떻게 하면.. 원래 날짜가 나올수 있게끔 할수 있을까요.ㅡㅡ

 

덤프할때.. php코드가 인식할수 있게끔.. 변환을

해줘서.. 덤프를 해야하나요?/

 

아시는분 조언좀 부탁드립니다.

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

1003137188235 숫자로 보아

1003137188 + 235 인것같습니다.

 

즉,

1003137188235 * 0.001

해서 이 결과를 trunc 로 소숫점 이하를 자르는데,

그 리턴값이 double 형이 되는지라, 다시 int4로 정수형으로 바꾸고

그것을 다시 abstime으로 PostgreSQL에서 사용하는 timestamp 형으로 바꾸면 될 것같네요.

 

SELECT to_char(trunc(1003137188235 * 0.001)::int4::abstime::timestamp, 'YYYY년 MM월 DD일 HH24시 MI분 SS초') as reg_date;

 

reg_date

---------------------------------

2001년 10월 15일 18시 13분 08초

(1 row)

김상기(ioseph)님이 2003-02-25 16:15에 작성한 댓글입니다.

답변 감사 합니다..

움.. 제가 말을 잘 못한거 같은데..

쿼리상에서

2000년 01월 01일 01시 01분 01초 로 변환을 바라는게 아니라

 

time()처럼..숫자 조합으로 가져왔음 해서요..

미투님이 2003-02-25 16:25에 작성한 댓글입니다.

SELECT trunc(1003137188235 * 0.001) as reg_date;

신기배(nonun)님이 2003-02-25 17:11에 작성한 댓글입니다.

날짜형변환에 대한 그 처리는 경험상 클라이언트가 하기보다는 서버쪽에서 하는 것이 여러모로 잔손질이 덜가는 것같더군요.

 

즉, 어떤 프로그램에서 날짜 관련 자료를 사용한다면, 그것의 입출력만 클라이언트가 맡고 나머지 모든 날짜 관련 연산들 (interval, format ..)을 RDBMS 쪽으로 맡기는 것이 경험상 편하더군요. (또한 오류도 적습니다)

 

이런 이유에서 to_char 의 날짜포맷함수까지 소개했습니다.

 

자세한 것은 이곳 게시판의 날짜 관련 게시물들을 살펴보세요. 꽤 많은 것을 생각하게 할겝니다.

김상기(ioseph)님이 2003-02-25 17:44에 작성한 댓글입니다.

날짜 변환과 기타 자료들간의 변환에 관한 문제는 MySQL 과 PostgreSQL 이 많이 다릅니다. 처음에는 MySQL 의 방식이 편한것 같지만, 모두 알고나면 PostgreSQL 의 방식이 당연하다는 생각이 들 것입니다.

 

생각하시는 것보다 훨씬 다양한 형전환과 출력 형식을 제공하므로 여기 올라온 글들과 메뉴얼의 format 함수 (to_date, to_char, to_number 등) 들을 참조하시면 원하는 자료를 얻을 수 있을 것으로 생각합니다.

정재익(advance)님이 2003-02-26 15:56에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4598Vacuum 문제 발생. [1]
한태욱
2003-02-27
1436
4597음..어떡하면 좋아요 ㅜ.ㅜ [3]
박지영
2003-02-27
1563
4596설치후 삭제 그리고 다시 설치...-_-; [4]
서문교
2003-02-27
1690
4595날짜관련 변환 ?? [5]
미투
2003-02-25
3779
4594오라클에서 pgsql 로 변환시... sql문 [1]
어떤생각
2003-02-24
1750
4593변수 타입과 함수정의에 대해서.. [3]
imcrazy
2003-02-24
1785
4592[질문]postgres7.3.2 설치방법 좀... [2]
제발~
2003-02-22
1424
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다