SQL 생일 조회에 대한 쿼리문 질문..

SQL 생일 조회에 대한 쿼리문 질문..

작성일 2012.04.26댓글 1건
    게시물 수정 , 삭제는 로그인 필요

생각보다 개념이 쉽게 잡히질 않네요..

일단 DB에는

생일이 1987-02-22 , 1992-01-24... ---

 

이런식으로 입력되어있습니다.

이때

 

오늘일자 기준으로 7일 이후 사이에 존재하는 생일자를 뽑아내는 쿼리를 작성하려면 어떻게 해야할까요?

 

DB : tb_user

table : birthday

라는 기준에요..

쉬워보이면서도 생각보다 어렵네요..연도가 틀리다보니 ㅠ.ㅠ

 


#sql 생일 구하기 #sql 생일

profile_image 익명 작성일 -

 

MS SQL Server 기준으로 설명을 드리겠습니다.

 

1. 사용자의 금년 생일을 구합니다.

-. 사용자의 생일에 년까지의 (YEAR) 수를 날짜 연산으로 더합니다.

       (금년까지의 해수 = 금 - 생년)

-. 생년을 그냥 금년으로만 바꿔도 무리는 없을 합니다.

-. 생일 필드명을 BIRTHDAY 경우 다음과 같이 됩니다.

DATEADD(YY, DATEDIFF(YY, BIRTHDAY, GETDATE()), BIRTHDAY)

) '1934-04-27' 경우 '2012-04-27' 됩니다.

 

2. 구해진 금년 생일이 이후 7 이내에 있는지 체크 합니다.

-. [구해진 생일] BETWEEN [시작일] AND [마지막일]

 

최종 쿼리는 다음과 같습니다.

 

DECLARE @START DATETIME --7일의 시작일 00시 00분 00초

DECLARE @END DATETIME --7일의 마지막일 23시 59분 59초 => 8일째의 00시 00분 00초와 동일

 

SET @START = DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0)  --오늘의 자정시각 2012-04-27 00:00:00

SET @END = DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 8) --8 후의 자정시각 2012-05-05 00:00:00

 

"오늘(27) 기준으로 "2012-04-27 00:00:00" <= 생일 <= "2012-05-05 00:00:00" 조건이 됩니다.

생일정보를 저장하는 필드가 날짜 연산일 경우 ,,초를 염두해 두어야 합니다."

 

SELECT

USERNAME, --이름

BIRTHDAY -- 생일

FROM

UDT_BIRTHDAY

WHERE

DATEADD(YY, DATEDIFF(YY, BIRTHDAY, GETDATE()), BIRTHDAY) BETWEEN @START AND @END

mysql (쿼리문) 질문

연습문제들인데 sql 초보라서 잘 모르겠습니다..... 없애는 쿼리문과 내림차순 정렬쿼리문을... ~별은 group by로 조회합니다. 이때 집계함수에 대한...

MS SQL 영수증 DB화 쿼리문 질문...

... 첫번째 질문이구요. 판매테이블에 판매총합계... 쿼리문의 예시와 그에대한 설명을 자세히 좀... ② 판매내역에서 판매가 합계조회 SELECT 영수증코드 ,sum...

sql 데이터조회 질문있습니다.

... 헌데 위의 쿼리문으로 조회를 하면 결과는... 두번째 질문은 굉장히 어려운 질문입니다.... 사람에 대한 컬럼이 있는지.....키가 무엇인지.......

mysql 컬럼 타입에 대한 질문드립니다

다음과 같은 쿼리문이 있습니다 SELECT a.id, b.name FROM test1 a, test2 b WHERE a.id... test1.seq 컬럼이 int 타입이지만 이것을 문자열 형태로 조회하는것은 MySQL 내장...

데이터베이스 질문합니다.(MSSQL기준)

... 부분을 조회하도록 하는 쿼리문을 모르겠어서 질문하고 싶습니다. 참고로... LIKE 문에 대한 설명 https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/like...

my sql 간단 질문입니다.

... 존재하구요 쿼리문 질문은 ‘대한은행’의 직원들 중 ‘부산’에 사는... 부산에 사는 직원들을 조회하려면 '직원'테이블을 참조해야 하는데 두가지를 한번에...

SQL - C# 관련 질문드립니다.

혹시 쿼리문으로 가져온 데이터를 C#에서 칼럼타입이나 길이등을... B2 from A inner join B ~~ 이런식으로 조회를 했을때 A1, B2 칼럼에 대한 nvarchar...

쿼리문 질문입니다

http://sqler.pe.kr/o_lec/sql8.asp 이곳에 보시면 select job... 따라서 조회코자 하는 항목이 직업, 직원... Column에 대한 Alias Name을 쓰지 못함에 주의하시기...