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 7122 게시물 읽기
No. 7122
두 날짜의 차이(기간) 구하기
작성자
period
작성일
2007-04-30 18:27ⓒ
2007-04-30 18:30ⓜ
조회수
7,601


테이블에 글을 등록한 날짜 그리고 그 글을 공개할 일수를 저장하고 있습니다.


그리고 만약 지금 시간에서 등록한 날짜를 뺀 값이 공개할 일수보다 작으면,


글을 공개하고, 지금 시간에서 등록한 날짜를 뺀 값이 공개할 일수보다 크면,


글을 공개하지 않도록 하는 쿼리문을 만들려고 합니다.


이것저것 책도 찾아보고 했지만 답을 못찾았네요.


처음엔 


"select * from table where current_timestamp - post_date < period"

- post_date: timestamp

- period: integer


위의 쿼리를 날렸었는데요. 확인해보니 작동을 제대로 안하네요..-_-;;


혹시 방법(쿼리문)을 아시는 분이나,


어렵풋하게나마 어떻게 하면 될것 같다라는 방법 정도라도 좋습니다.


조언 기다리겠습니다.^^

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

자답입니다.

"select * from table where extract(epoch from current_timestamp-post_date)<(period * 24 * 60 * 60)"

extract (epoch ..) 를 이용해서 current_timestamp - post_date의 결과인 interval의 초값을 구합니다.
그리고 또한 period의 초값을 구하죠.

그 두개의 초값을 비교하는 방법으로 했습니다.

다른 더 좋은 방법을 알고 계시는분은 답변 부탁드립니다.^^

period님이 2007-04-30 19:08에 작성한 댓글입니다. Edit

여러가지 방법이 나오겠습니다.

그냥 간단하게 생각해 본것이..

select case when post_date + (period || 'd')::interval < now() true else false end ;

이런식이면 되지 않을까요? 테스트는 안해봤음

tyro님이 2007-04-30 20:36에 작성한 댓글입니다. Edit

period 가 단순히 공개일자 기간(날수) 를 나타내는 거라면

int 타입 말고 interval 타입이 편할것도 같습니다.


tmp=> create table t (t timestamp, d interval);                                
CREATE TABLE

tmp=> insert into t values (now(), '2 days');
INSERT 0 1

tmp=> select t, d, t + d from t;                                              
             t              |   d    |          ?column?         
----------------------------+--------+----------------------------
 2007-04-30 20:41:00.058911 | 2 days | 2007-05-02 20:41:00.058911
(1 row)


tyro님이 2007-04-30 20:43에 작성한 댓글입니다. Edit

tyro 님 답변 정말 감사합니다..^^

(period || 'd')::interval <- 이런 식으로 할수 있다는거 오늘 알게되었네요.

답변 감사합니다.
period님이 2007-05-09 11:40에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7126문득? 백업을 어떻게 받고 계시는지요?? [2]
초짜7
2007-05-01
5766
7124$1 은 무슨 뜻인가요? [1]
이종현
2007-04-30
4805
7123좀 복잡한 쿼리인데요.. 용어에 대한 이해도가 떨어져서요.. [1]
이종현
2007-04-30
5346
7122두 날짜의 차이(기간) 구하기 [4]
period
2007-04-30
7601
7121PQstatus 함수를 쓰다가 .... [1]
윤영덕
2007-04-30
5055
7117sql문에 대해서 문의드립니다. [3]
박성호
2007-04-30
5833
7116Postgresql 초보입니다. 이제 막 관심을 가지고 있습니다. [2]
이종현
2007-04-28
6000
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다