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 4364 게시물 읽기
No. 4364
년도는 상과없이 달과 날짜만 비교할려면....
작성자
박기원
작성일
2002-10-08 10:01
조회수
1,192

안녕하세요?

년도는 상관없이 달만 비교할려고 하거든요

start_ day 와 end_day가 있다면 end_day가 큰것만 뽑을려고 하는데요

지금 select date_part('month', start_day) 와 select date_part('day', start_day)를 사용하여서 두개를 비교하였습니다.

근데 소스가 너무 지저분해지네요 혹시 간단하게 할 수 있는 방법 없을까요?

참고로 제가 한 소스는 두개의 월중 end_day가 크거나 같다면 날짜를 비교해서 end_day가 크면 뽑으라고 했걷느요

부탁드립겠습니다

 

select * from gift_day where ((select date_part('month', start_day)) < (select date_part('month', end_day))) or ((select date_part('month', start_day)) = (select date_part('month', end_day)) and (select date_part('day', start_day)) <= (select date_part('day', end_day))).

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

select * from gift_day where ((select date_part('month', start_day)) < (select date_part('month', end_day))) or ((select date_part('month', start_day)) = (select date_part('month', end_day)) and (select date_part('day', start_day)) <= (select date_part('day', end_day))).

 

위의 query 는 잘 이해가 가질 않습니다. 굳이 함수에 select date_part() 이렇게 select 구문을 붙일 필요가 있는가요?

 

select * from gift_day

where (start_day <= end_day);

 

이런 query 로는 해결이 되질 않는 모양이죠.

 

그렇다면 다음 query 로는 어떨까요.

 

select * from gift_day

where (start_day<=end_day) and (date_part('month',startday)<=date_part('month',end_day));

정재익(advance)님이 2002-10-09 10:33에 작성한 댓글입니다.

자료구조를 바꾸는 것도 고려해볼 만합니다.

 

가령, 10월 12일이 생일인 모든 회원들에게 생일 축하 카드를 보내려고 한다면,

 

방법 하나가 생년월일에서 월-일을 추출해서 비교해서 같은 것만 뽑는 것과

또 다른 방법은 아에, 태어난해와 월-일을 따로 보관해서, 같은 월-일을 비교하는 방법도 있겠지요.

또 다른 방법은 postgresql의 재미있는 인덱스인 부분/함수 인덱스를 사용하는 방법도 있을겝니다.

http://database.sarang.net/database/postgres/manual/manual-7.2/indexes-partial.html 문서를 참조하세요.

 

아무튼 이부분에 대한 참조로 Tutorials 에 있는 날짜형에 대한 이야기도 참고하셔도 괜찮습니다. (꽤 많은 생각을 하게 만들겝니다)

ioseph님이 2002-10-12 12:33에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4367[질문] Mysql로 덤프 받은 text를 postgresql로 import 시킬 수 있는지요 [1]
이근호
2002-10-09
1012
4366odbc를 이용한 postgres 접속에 관한 문의 [1]
초보
2002-10-08
967
4365char와 varchar 의 차이점은 무엇인가요? [2]
최장군
2002-10-08
861
4364년도는 상과없이 달과 날짜만 비교할려면.... [2]
박기원
2002-10-08
1192
4363Trigger 질문 [3]
김 선혁
2002-10-08
1134
4362저.. pg_hba.conf 에 md5 로 설정시..
상배
2002-10-08
878
4361C를 이용한 함수 확장에 관한 질문
정호영
2002-10-07
882
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다