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
운영게시판
최근게시물
Sybase Q&A 1517 게시물 읽기
No. 1517
쿼리 관련 질문
작성자
정초보
작성일
2006-04-27 10:29
조회수
5,208

안녕하세요 쿼리 관련해서 고수님들께 질문좀 드립니다..

 

나이땜에 그러는 데요 보통 datediff () 를 써서 나이를 구할수 있는데

단순히 나이만 구하는것이 아니라 생일이 지냤냐 안지났냐에 따라서 나이를 구해야 합니다

우선 우리 나라는 태어나면서 1살인데 외국은 0살 이잖아요 이건 외국 기준으로 태어난 것은

0살로 잡고요

만약 제 생일이 2004년 4월 30 일 이라 치면 오늘이 4/27이니 아직 생일이 안지났잖아요

보통 이런 경우 2006년이 되자 마자 1살 더 먹은걸로 쳐서 2살이라 하잖아요

근데 실제 생일이 아직 안지났기 때문에 1살이 나와야 할때... 쿼리로 생년월일까지 비교해서 한번에 구할수 있는 방법이 있을까요?

좀더 자세 하게 예를 들면

오늘 날짜 20060427 이구요

A는 생일이 20040425 이라서 생일이 지나서 2살

B는 생일이 20040430 이라서 생일이 안지나서 1살 이렇게 나와야 하거든요 이게 쿼리로 가능할까요?

도움좀 부탁드려요...

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

로직을 이렇게 구현하시면 되네요...

 

 

생일과 오늘 날자 비교해서

 

나이 구하고.....생일중월일 > 오늘날자중월일이면  그냥 나이

 

아니면

 

나이+1

 

 

쿼리는 조금만 공부하심 될것같은데...

 

case구문 쓰셔도 되고.....아님...if 쓰셔도 되고.....

지연님이 2006-04-27 12:40에 작성한 댓글입니다.
이 댓글은 2006-04-27 12:40에 마지막으로 수정되었습니다. Edit

아 답변 감사합니다.

프로그램 로직과 길이에 제한이 있어서 쿼리 만으로

구현해야 했거든요

잔머리 굴려서

select floor(datediff(dd,birthday, getdate())/365.25)

이렇게 했어요.. 윤달땜에 365.25로 나누어 주니 99%이상

정확한거 같더라구요 ..^^

 암튼.. 답변 감사합니다... 담에도 많이 도와주세요

정초보님이 2006-04-27 12:46에 작성한 댓글입니다. Edit

case로 했습니다.

 

 

select convert(varchar(12),a,101),
 case when datepart(mm,getdate())-datepart(mm,a) > 0

                 then datediff(yy,a,getdate())-1

        when datepart(mm,getdate())-datepart(mm,a) < 0

                then datediff(yy,a,getdate())
             else then

                  case

                  when datepart(dd,getdate())-datepart(dd,a) < 0

                          then datediff(yy,a,getdate())-1
                       else datediff(yy,a,getdate())
                  end
end
from birth

 

                        
-            -----------
01/01/2003             3
05/01/2003             2
04/01/2003             3
04/30/2003             2

지연님이 2006-04-27 16:05에 작성한 댓글입니다.
이 댓글은 2006-04-27 16:06에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1520ct-lib, db-lib 의 차이점? [1]
초보
2006-04-27
3371
1519데이터베이스 로그때문에 에러가 납니다. 꼭 부탁(초보라서..) [2]
소프트
2006-04-27
5095
1518사이베이스 데이터 베이스를 이용한 게시판 소스 있나요? [2]
김성준
2006-04-27
3399
1517쿼리 관련 질문 [3]
정초보
2006-04-27
5208
1516Join 문제 [1]
Je
2006-04-27
3795
1515sybase 초보 [3]
sybase 초보
2006-04-26
4263
1514sybase central 질문입니다. [1]
김기택
2006-04-25
3837
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다