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 6980 게시물 읽기
No. 6980
트랜잭션연결후 DB서버의 현재일시 구할려면?
작성자
이기자(k3i2)
작성일
2006-12-15 03:13
조회수
4,406

파워빌더같은 윈도프로그래밍 작업시 디비연결후, 서버의 현재일시를 구해야하는 경우가 많이 발생하는데,
postgresql의 함수를 select CURRENT_TIMESTAMP 로 만들어놓고, 필요할때마다 CALL을 했는데,
계속 같은 값만을 가져오더군요.
DB를 끊었다가 다시 연결하지 않은 이상 계속 같은값만(처음 연결시간) 가져와서 아주 곤란하게 되었습니다.
MS-SQL은 언제든 select getdate() 하면 그때마다의 현재일시를 가져오는데 postgresql은 그런게 안되나요?
pgAdminIII 쿼리에서는 실행할따마다 다른겂들을 가져오더군요.
근데 필요한건 비베나 파빌같은 프로그래밍 작업시 한번 연결후 요구할때마다 요구한 현재일시를 가져오는겁니다.
막히는게 의외로 많네요.
전에도 같은 질문을 올렸었는데, 이렇다할 답변을 듣지 못했습니다.
찾아봐도 없구요... T.T

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

근데 왜 한 트랜젝션을 프로그램 내내 유지해야 하나요.?

날짜를 구하기 전에 COMMIT 하고 다시 BEGIN 하면 안되는 상황이라도 있는지 모르겟으나

트랜잭션 도중에 같은 날짜를 가져오는 것을 피하려면

C/C++ 로 저장프로시저를 만들어 DB 가 아닌 운영체제의 시간을 가져오도록 하는 방법이

제일 좋아 보입니다. 코드도 몇 줄 안되니까 어렵지 않을 거구요.

초보대왕님이 2006-12-15 11:38에 작성한 댓글입니다.
이 댓글은 2006-12-15 11:39에 마지막으로 수정되었습니다. Edit

정책의 문제인데요. 

개인적인 생각으로는 
하나의 트랜잭션 내에서의 '현재 시간' 이라는 것은 
모두 같은 시간이어야함이 맞는 듯합디다. 

이게 결정된게 제가 기억하기로는 6.x 버전에서입니다. 
참 말이 많았던 정책이었죠. 
하지만, 지금까지 바뀌지 않았습니다. 

왜냐하면, 저처럼, 같은 시간이어야한다고. 생각하는 사람들이 더 많은가보죠. :)

다른 시간을 구하려면 트랜잭션을 종료하십시오. ^^
달리 방법이 없을 듯합니다. 

일을 떠나서 한번 곰곰히 생각해보세요. 
과연 한  트랜잭션 안에서의 '현재 시간' 이라는 것이 언제나 같은 시간이어야하는가?
PostgreSQL 정책에 문제가 있는게 아닌가?

문제는 제가 알기로는 PostgreSQL만 이 정책을 따르는 것 같습디다. ^^

김상기(ioseph)님이 2006-12-15 12:13에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6984to_char 날짜 지역화 논의 [2]
김상기
2006-12-19
4882
6982셀프 조인 쿼리문좀 알려주세요 [1]
힘들어요
2006-12-15
4147
6981PostgreSQL 8.2 윈도우에서 설치시 문제 (황당)
밥줘
2006-12-15
4609
6980트랜잭션연결후 DB서버의 현재일시 구할려면? [2]
이기자
2006-12-15
4406
6979pgAdmin III 1.6 이야기 [1]
김상기
2006-12-15
4318
6978postgreSQL 동접수 [3]
김성운
2006-12-14
5106
6977동작시에 이런 메세지가 나옵니다. [FATAL : unsupported frontend protocol] [3]
박성호
2006-12-14
4071
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다